Ok, questo è un problema strano, quindi ti prego di sopportare me come spiego.Passa per problema di riferimento con PHP 5.3.1
Abbiamo aggiornato i nostri server di sviluppo da PHP 5.2.5 a 5.3.1.
Caricamento il nostro codice dopo l'interruttore, iniziamo a ricevere errori come:
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 linea menzionata (105) è la seguente:
call_user_func_array(Array($stmt, 'bind_param'), $passArray);
abbiamo cambiato la linea per la seguente:
call_user_func_array(Array($stmt, 'bind_param'), &$passArray);
a questo punto (perché allow_call_time_pass_reference
) è spento, php genera questa:
Deprecated: Call-time pass-by-reference has been deprecated in /home/spot/trunk/system/core/Database.class.php on line 105
Dopo aver provato a risolvere il problema per qualche tempo, ho rotto e impostare allow_call_time_pass_reference
su on.
, sbarazzandosi del l'avvertimento Deprecated
, ma ora l'avviso Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference
sta gettando ogni volta, con o senza il riferimento.
Non ho idea di come risolvere questo problema. Se il metodo di destinazione fosse mio, farei semplicemente riferimento ai vars in entrata nella dichiarazione func, ma è un metodo (relativamente) nativo (mysqli).
Qualcuno ha provato questo? Come posso aggirarlo?
Grazie.
Inoltre, nel codice sopra $ stmt è un oggetto restituito dal mysqli :: preparare – Spot
Ho anche avuto questo problema e ha trovato [questo] (https://sixohthree.com/1486/migrating-to-php-5-3-call_user_func_array) post sul blog che mi ha aiutato molto. – cb0