Ok, este es un problema extraño, así que por favor ten paciencia conmigo como te explico.Pasa por problema de referencia con PHP 5.3.1
Actualizamos nuestros servidores de desarrollo de PHP 5.2.5 a 5.3.1.
Cargando nuestro código después del cambio, que comienza a recibir errores como:
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
la mencionada línea (105) es el siguiente:
call_user_func_array(Array($stmt, 'bind_param'), $passArray);
cambiamos la línea a la siguiente:
call_user_func_array(Array($stmt, 'bind_param'), &$passArray);
en este punto (porque allow_call_time_pass_reference
) está apagado, php lanza esto:
Deprecated: Call-time pass-by-reference has been deprecated in /home/spot/trunk/system/core/Database.class.php on line 105
Después de tratar de solucionar este problema desde hace algún tiempo, que se rompió y me puse a allow_call_time_pass_reference
sucesivamente.
que se libró de la advertencia Deprecated
, pero ahora la advertencia Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference
está lanzando cada vez, con o sin la referenciación.
No tengo ni idea de cómo solucionarlo. Si el método de destino fuera mío, simplemente haría referencia a los vars entrantes en la declaración de func, pero es un método (relativamente) nativo (mysqli).
¿Alguien ha experimentado esto? ¿Cómo puedo evitarlo?
Gracias.
Además, en el código anterior $ stmt es un objeto devuelto por mysqli :: prepare – Spot
También tuve este problema y encontró [esto] (https://sixohthree.com/1486/migrating-to-php-5-3-call_user_func_array) publicación de blog que me ayudó mucho. – cb0