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

Erreur bizarre et ennuyeuse :appel à la fonction indéfinie mysql_query()

PHP 7 s'est débarrassé de mysql_query() parce que c'est problématique à bien des égards ! L'API n'encourage pas les bonnes pratiques, la ligne officielle est qu'elle n'est pas maintenue, et AUCUNE DÉCLARATION PRÉPARÉE !?! C'est essentiellement le plus gros problème de PHP qui encourage les mauvaises pratiques menant à l'injection SQL, et c'est une mauvaise situation majeure.

Cependant, je travaille avec des bases de code héritées, je dois donc faire face à la même situation que vous dans certains cas. Si vous avez une petite base de code, mettez simplement à jour votre méthode de connexion à la base de données. Si vous avez une grande base de code, voici ce que je recommande :

  • Retrouvez votre version php pour cette base de code vers php 5.6, elle sera prise en charge pendant un peu plus de 2016.
  • Prenez votre temps pour mettre à jour vers PDO (vous pouvez créer un encapsuleur autour de PDO pour le rendre moins verbeux et toujours autoriser les requêtes préparées).
  • Ignorer mysqli. S'il vous faut 5 minutes pour mettre à niveau depuis mysql_*, vous vous trompez probablement et vous vous laissez ouvert à l'injection sql. Optez simplement pour PDO et commencez à utiliser des requêtes préparées pour pouvoir dormir la nuit.
  • Si vous souhaitez toujours utiliser php 7 dans des projets plus modernes, lancez une instance de conteneur avec les anciennes bases de code héritées de php 5.6.