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

Pourquoi ne devrais-je pas utiliser les fonctions mysql_* en PHP ?

L'extension MySQL :

  • N'est pas en cours de développement actif
  • Est officiellement obsolète à partir de PHP 5.5 (publié en juin 2013).
  • A été supprimé entièrement à partir de PHP 7.0 (publié en décembre 2015)
    • Cela signifie qu'à compter du 31 décembre 2018 il n'existe dans aucune version prise en charge de PHP. Si vous utilisez une version de PHP qui le prend en charge, vous utilisez une version qui ne résout pas les problèmes de sécurité.
  • Manque d'une interface OO
  • Ne prend pas en charge :
    • Requêtes asynchrones non bloquantes
    • Déclarations préparées ou requêtes paramétrées
    • Procédures stockées
    • Plusieurs déclarations
    • Transactions
    • La "nouvelle" méthode d'authentification par mot de passe (activée par défaut dans MySQL 5.6 ; requise dans la version 5.7)
    • Toute nouvelle fonctionnalité de MySQL 5.1 ou version ultérieure

Comme il est obsolète, son utilisation rend votre code moins évolutif.

Le manque de prise en charge des instructions préparées est particulièrement important car elles fournissent une méthode plus claire et moins sujette aux erreurs pour échapper et citer des données externes que de les échapper manuellement avec un appel de fonction séparé.

Voir le comparatif des extensions SQL .