Хорошо, это странная проблема, поэтому, пожалуйста, несите меня, как я объясняю.
Мы обновили наши серверы от PHP с 5.2.5 до 5.3.1.
Загружая наш код после переключения, мы начинаем получать такие ошибки, как:
Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in /home/spot/trunk/system/core/Database.class.php on line 105
указанная линия (105) выглядит следующим образом:
call_user_func_array(Array($stmt, 'bind_param'), $passArray);
мы изменили строку на следующую:
call_user_func_array(Array($stmt, 'bind_param'), &$passArray);
в этот момент (поскольку allow_call_time_pass_reference
) выключен, php выбрасывает это:
Deprecated: Call-time pass-by-reference has been deprecated in /home/spot/trunk/system/core/Database.class.php on line 105
Попытавшись исправить это в течение некоторого времени, я сломался и установил allow_call_time_pass_reference
на.
Это избавило от предупреждения Deprecated
, но теперь предупреждение Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference
бросает каждый раз, с или без ссылок.
У меня есть нулевая подсказка, как это исправить. Если целевой метод был моим собственным, я бы просто ссылался на входящие vars в объявлении func, но это (относительно) собственный метод (mysqli).
Кто-нибудь испытал это? Как я могу обойти это?
Спасибо.