Что может вызвать ошибку PHP-MySQL?

У вас есть ошибка в синтаксисе 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 () по ссылке, в более ранних версиях это не требовалось.