Этот вопрос был задан before .I имеют следующие запросыPDO цитирование целых чисел в запросе. Что мне теперь делать?
$start=150;
$sql='select * from articles where category=? limit ?,5';
$query=$con->prepare($sql)
$query->execute(array($_GET['category'],$start));
и я получаю сообщение об ошибке (из-за приведением 150):
У Вас есть ошибка в вашем SQL синтаксиса; проверить инструкцию, которая соответствует вашей версии сервера MySQL для правого синтаксиса использовать вблизи «» 150' , 5' в строке 1.
Это было сообщено как об ошибке, а затем закрыта, как bogus.What Должен ли я теперь делать? Есть ли способ обхода?
EDIT
Почему я не столкнулся с такой же вопрос, когда у меня есть запрос, как
$sql='select * from articles where id=?';
$query=$con->prepare($sql);
$query->execute(array($id));
@MichaelBerkowski: Пожалуйста, смотрите EDIT –
Это не является проблемой при связывании 'ид =', потому что MySQL не заботится, если это котируется?. Решение использовать его в 'LIMIT', как указано в ответе ниже и в связанном вопросе, заключается в явном' bindParam() ', чтобы заставить« PDO :: PARAM_INT »вместо передачи массива' execute() ', который будет отправьте строки (и укажите их) –
@MichaelBerkowski: и почему это так особенное.Разве поведение не должно быть одинаковым в каждом случае. Кавычки, приемлемые в случае столбцов первичного ключа, вместо имени «id», возможно, были «user_id», и он по-прежнему работает с кавычками вокруг целого числа? –