Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Php,sql. что использовать quote или prepare

Дима Гром Знаток (280), на голосовании 2 года назад
Как правильнее написать, так:
$dish = $db->quote($_POST['dish_search']);
$dish = strtr($dish, array('_' => '\_', '%' => '\%'));
$stmt = $db->query("SELECT dish_name, price FROM dishes WHERE dish_name LIKE $dish");

или так:
$dish = strtr($dish, array('_' => '\_', '%' => '\%'));
$stmt = $db->prepare('UPDATE dishes SET price = 1 WHERE dish_name LIKE ?');
$stmt->execute(array($_POST['dish_name']));
и почему так правильнее.
Голосование за лучший ответ
Саня Семенов Оракул (60497) 3 года назад
prepare
Дима ГромЗнаток (280) 3 года назад
а почему
Саня Семенов Оракул (60497) Дима Гром, потому что quote() - метод появился когда не было подготовленных запросов и были проблемы с sql инъекциями, а потом сделали prepare() в который невозможно воткнуть лишнюю кавычку с комментарием
Alex Искусственный Интеллект (117099) 3 года назад
/* Выполнение запроса с передачей ему массива параметров */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
Похожие вопросы