PHP weird Seg-faults on mysqli_stmt_bind_result

При переносе PHP-скрипта с PHP 5.2 на PHP 5.3 я столкнулся со следующей проблемой: Общая цель скрипта - поиск данных. У меня есть процедура, которая добавляет данные на сервер MySQL. Так как она действительно повторяется, я переписал ее (некоторое время назад), чтобы использовать MySQLi, в частности подготовленные операторы, так как всего есть 3 возможных запроса. В любом случае, сейчас, на сервере PHP 5.3, скрипт падает на следующей строке:

mysqli_stmt_bind_result($prepCheck, $id1);

Где $prepCheck создается с помощью $prepCheck = mysqli_prepare($con, $checkQuery) or die("Error");. Запрос работает нормально на сервере MySQL ($checkQuery, то есть), и PHP-код тоже работал на предыдущем сервере.

Запуск скрипта с помощью strace ничего не выявил, так как последнее, что в нем есть - это системный вызов для echo "Execute";, который 29936 19:44:18 write(1, "Execute\n", 8) = 8.

Объект соединения не FALSE, и даже если бы это было так, он должен завершиться с другой ошибкой, верно?

А вот и самая странная часть: Эта процедура не дает сбоя, когда я запускаю сценарий, ограничивающий количество посещаемых страниц, и сценарий завершается успешно. Однако, когда я устанавливаю более высокий лимит, она терпит неудачу, всегда при первом вызове этой процедуры, и именно на этой строке.

Если у кого-нибудь есть какие-либо предположения, что может быть причиной этого, они будут глубоко признательны.

Я могу вставить код, если кому-то нужно увидеть большую картину, но процедура очень длинная и скучная до смерти (возможно, поэтому скрипт не работает :)).

Вот как начинается скрипт: error_reporting(E_ALL); ini_set('display_errors', '1');. Кроме "магической" Segmentation fault никаких ошибок не сообщается. Я не использую APC.

Не уверен, что это имеет значение, но я использую CLI для запуска скрипта, а не веб-интерфейс.

Версия PHP - 5.3.8, версия MySQL - 5.1.56. Ограничение памяти установлено на 64MB.

EDIT: Сбой процедуры + часть другого кода выложены здесь: http://codepad.org/KkZTxttQ. Весь файл огромный и уродливый, и я считаю, что он не имеет отношения к делу, поэтому я пока не буду его выкладывать. Строка, которая дает сбой - 113.

8
задан hakre 13 August 2012 в 11:36
поделиться