У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса, используемого рядом с '?,?' в строке 1
У меня никогда не было проблемы с кодом, поэтому я предполагаю, что он должен иметь какое-то отношение к версии MySQL (MySQL 4.1.25 и PHP 5).
Вот код, который я использую:
$sql = "a long sql select statement... ?,?"; if ($stmt = $mysqli->prepare($sql)) { // it never even gets here $stmt->bind_param('ii',$offset,$limit); ... } else { echo($mysqli->error); }
Вы не можете связывать x и y в LIMIT x,y
потому что только данные могут быть связаны.
В качестве альтернативы вы можете добавить $ offset и $ limit непосредственно в свой код (после проверки) и использовать следующее без привязки $ offset и $ limit:
$sql = "a long sql select statement... $offset,$limit";
Я не уверен, правильно ли принят ответ. Я просто попытался с MySQL5.0.7 и PHP 5.3.3. и он работает без проблем.
Было ли недавно обновление с PHP <5.3 до 5.3+ на этом сервере?
Если да, это может вызвать проблемы (непонятно, как вы передаете параметры):
PHP 5.3+ требует передать параметры bind_param () по ссылке, в более ранних версиях это не требовалось.