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

Come riscrivere con successo il vecchio codice mysql-php con funzioni mysql_* deprecate?

In realtà, un semplice, dolce e breve:Sì, non è più necessario.

Rivediamo il codice non che abbiamo perso qualcosa:

  • __construct - Il costruttore conteneva semplicemente tutta la configurazione. PDO ha un concetto molto più semplice qui, una stringa di connessione contenente la maggior parte delle informazioni:

     mysql:host=127.0.0.1;dbname=people;charset=UTF-8
    

    Anche PDO fornisce il costruttore per l'uso già pronto, quindi double non è necessario.

  • connect - Anche la funzione di connessione non è più necessaria. Questo viene fatto istanziando già PDO. Puoi cercare le eccezioni, il manuale PHP ha un esempio sulla sua pagina del costruttore .

  • selectDb - Anche questa complicata funzione non è più necessaria. Wow, la terza funzione che possiamo semplicemente eliminare a causa della stringa di connessione PDO. Tanto potere con così meno personaggi. Saluti!

  • __destruct - Il distruttore. Siamo onesti:anche MySQL non aveva bisogno di questo. Tuttavia con PDO lo otteniamo gratuitamente, senza scrivere una sola riga di codice.

Sembra buono! Sei riuscito a migrare da quell'oscura classe di database a PDO rimuovendo il codice obsoleto! Congratulazioni:

$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

Se ora pensi, che ne dici se voglio avere una classe di database da solo? Bene, puoi farlo, perché puoi estendere da PDO (sì, funziona!):

class DB extends PDO
{
   ... my super-new-shiny-code
}

Perché potresti volerlo fare? Non ne ho idea, ma forse è più fluente per il tuo codice. Se stai cercando un esempio di codice migliore, ne ho uno su Tabella PHP/MySQL con collegamenti ipertestuali .