Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi les fonctions mysql_ de PHP sont-elles obsolètes ?

L'extension mysql est ancienne et existe depuis PHP 2.0, sorti il ​​y a 15 ans (!!); qui est une bête résolument différente du PHP moderne qui essaie de se débarrasser des mauvaises pratiques de son passé. L'extension mysql est un connecteur de bas niveau très brut à MySQL qui manque de nombreuses fonctionnalités pratiques et est donc difficile à appliquer correctement de manière sécurisée; c'est donc mauvais pour les noobs. De nombreux développeurs ne comprennent pas l'injection SQL et l'API mysql est suffisamment fragile pour qu'il soit difficile de l'empêcher, même si vous en êtes conscient. Il est plein d'états globaux (passage de connexion implicite par exemple), ce qui facilite l'écriture de code difficile à maintenir. Comme il est ancien, il peut être déraisonnablement difficile à maintenir au niveau du noyau PHP.

L'extension mysqli est beaucoup plus récente et résout tous les problèmes ci-dessus. PDO est également assez nouveau et résout tous ces problèmes, et plus encore.

Pour ces raisons*, l'extension mysql sera supprimée dans le futur. Il a fait son travail à son apogée, plutôt mal, mais il l'a fait. Le temps a passé, les meilleures pratiques ont évolué, les applications sont devenues plus complexes et nécessitent une API plus moderne. mysql est en train d'être retiré, vivez avec.

Compte tenu de tout cela, il n'y a aucune raison de continuer à l'utiliser sauf pour l'inertie.

* Ce sont mes raisons sommaires de bon sens; pour toute l'histoire officielle, regardez ici :https://wiki.php.net/rfc/mysql_deprecation

Les citations de choix de ce document suivent :