mysqli но я бы делал $id=mysql_real_escape_string($id); mysql_query("SELECT * FROM `table` WHERE id='$id'"); вообще не понимаю чё дают эти шаблоны...
а, не, мне так не нравится. куда приятней писать так: PHP: <?php $id = clean($_POST['id']); $pid = clean($_POST['parent_id']); ... $sql = "UPDATE tt_category SET pid=%d, title=%s, attribute_set=%d WHERE id=%d LIMIT 1"; $sql = sprintf($sql, $pid, cleanQ($_POST['title']), $asid, $id); $db->query($sql); ... ?>
а если ещё и время/ресурсы замерить в них есть хоть какой-то смысл, если это всё часть mysql обёртки.. в том виде, в котором написал Koc - лично я смысла вообще не вижу гугли примерно по: php функции с переменным количеством параметров а дальше - да, можно регулярки, можно ещё как хошь.. немного мозгов напрячь, чтоб придумать свой алгоритм - не судьба? или только чужое линейно юзать умеем? надеюсь что нет
Вот, из мана: PHP: <?php if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) { $stmt->bind_param('s', 'Amersfoort'); $stmt->execute(); $stmt->bind_result($district); $stmt->fetch(); $stmt->close(); } ?> Уж лучше PDO тогда.
Mr.M.I.T. да знаю я.. если ты про подготовленные выражения и ООП API - то возможно ты прав а вот чем тебе mysql_query короче mysqli_query, кроме того, что в первом линк соединения передавать не обязательно? если же писать свою обёртку, то например такая конструкция: my_mysql_query("SELECT * FROM `table` WHERE id = %", $id) - будет ни чуть не длиннее.. даже короче.. но чуть медленнее, особенно если обёртка ООП
чем? втыкать кучу mysql_real_escape_string() удобнее? + в своей обёртке можно использовать любое кэширование, какое придёт в голову, например )) а вот это уже даст доп. скорости ))
1) вообще уже соединение с БД это время 2) время на запрос, особенно если сервер БД сильно загружен в данный момент по твоему идиоты пишут PHP-расширения для кэширования запросов? )) если конкретный пример: то данные из memcached будут извлекаться однозначно быстрее, чем из БД. поспоришь? ) update: или например в одном скрипте производиться один и тот-же запрос (хорошо это или плохо - другой момент), каждый раз будешь трафом с БД-сервером обмениваться?
это можно сделать и без mysqli их и так и так придётся втыкать, просто в моём случае они будут навиду... но причём тут sprintf и mysqli? конечно может я что-то не знаю, но результаты запросов всёравно придётся кешировать ручками...
1. Иди почитай про connections pool. 2. prepared statements - о чудо! кешируются на уровне БД. А нахрен тебе одинаковые данные из бд извлекать?
я не знал, что спор идёт про mysqli_* vs mysql_* если my_mysql_query() из моего примера будет это делать сама - тебе не придётся перед каждым запросом писать mysql_real_escape_string() на каждый параметр запроса
блин, скажите мну что нельзя сделать с таким же успехом без mysqli или sprintf кроме шаблонов запросов?
в том то и дело, что нахрен не надо но не проще ли разбиралово данные уже есть и данных нет, надо запросить перенести на функцию запроса, чтобы одинаковый код не плодить?