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

Perché le funzioni mysql_ di PHP sono deprecate?

L'estensione mysql è antica ed è in circolazione da PHP 2.0, rilasciato 15 anni fa (!!); che è una bestia decisamente diversa dal moderno PHP che cerca di liberarsi delle cattive pratiche del suo passato. L'estensione mysql è un connettore molto grezzo e di basso livello per MySQL che manca di molte funzionalità utili ed è quindi difficile da applicare correttamente in modo sicuro; è quindi un male per i niubbi. Molti sviluppatori non capiscono l'iniezione di SQL e l'API mysql è abbastanza fragile da rendere difficile prevenirlo, anche se ne sei a conoscenza. È pieno di stato globale (ad esempio il passaggio di connessione implicita), il che rende facile scrivere codice difficile da mantenere. Dal momento che è vecchio, potrebbe essere irragionevolmente difficile da mantenere a livello di base di PHP.

L'estensione mysqli è molto più recente e risolve tutti i problemi di cui sopra. PDO è anche piuttosto nuovo e risolve anche tutti questi problemi, e altro ancora.

Per questi motivi* l'estensione mysql verrà rimossa in futuro. Ha fatto il suo lavoro nel suo periodo di massimo splendore, piuttosto male, ma lo ha fatto. Il tempo è passato, le migliori pratiche si sono evolute, le applicazioni sono diventate più complesse e richiedono un'API più moderna. mysql è in pensione, vivi con esso.

Alla luce di tutto questo, non c'è nessuna ragione per continuare a usarlo tranne che per inerzia.

* Queste sono le mie ragioni riassuntive di buon senso; per l'intera storia ufficiale, guarda qui:https://wiki.php.net/rfc/mysql_deprecation

Seguono le virgolette scelte da quel documento: