Mysql
 sql >> Database >  >> RDS >> Mysql

Errore strano e fastidioso:chiamata alla funzione non definita mysql_query()

PHP 7 si è sbarazzato di mysql_query() perché è problematico in vari modi! L'API non incoraggia le buone pratiche, la linea ufficiale è che non è mantenuta e NESSUNA DICHIARAZIONE PREPARATA!?! In sostanza è il problema più grande in PHP che incoraggia le cattive pratiche che portano all'iniezione di sql, e questa è una grave brutta situazione.

Tuttavia, lavoro con basi di codice legacy, quindi in alcuni casi devo affrontare la tua stessa situazione. Se hai una piccola base di codice, aggiorna semplicemente il tuo metodo di connessione db. Se hai una base di codice di grandi dimensioni, ecco cosa ti consiglio:

  • Ripristina la tua versione php per questa base di codice a php 5.6, sarà supportata per un po' di più del 2016.
  • Prenditi il ​​tuo tempo per aggiornare a PDO (puoi creare un wrapper attorno a PDO per renderlo meno dettagliato e consentire comunque le query preparate).
  • Ignora mysqli. Se ci vogliono 5 minuti per eseguire l'aggiornamento da mysql_*, probabilmente stai sbagliando e ti lasci aperto a sql-injection. Basta scegliere PDO e iniziare a utilizzare le query preparate in modo da poter dormire la notte.
  • Se desideri ancora utilizzare php 7 in progetti più moderni, crea un'istanza container con le vecchie basi di codice legacy di php 5.6 su di essa.