Malgré la dépréciation des fonctions mysql_ dans PHP 5.5 et leur suppression ultérieure dans PHP 7, les développeurs peuvent être tenté de simplement les remplacer par leurs homologues mysqli_. Cependant, cette approche peut avoir des conséquences inattendues.
Bien que les fonctions partagent des noms et des fonctionnalités générales similaires, il existe des différences subtiles entre elles. Par exemple, la fonction mysql_query() renvoie un handle de ressource, tandis que mysqli_query() renvoie un objet mysqli_result. Cela peut sembler sans conséquence, mais cela peut conduire à des erreurs si le code n'est pas correctement ajusté pour gérer le changement de type de retour.
Reconnaissant ce problème, un outil de conversion a été développé pour aider les développeurs à faire la transition de leur code de mysql_ vers mysqli_. Cet outil, disponible sur https://github.com/philip/MySQLConverterTool, peut automatiser le processus de conversion, permettant aux scripts de fonctionner correctement immédiatement.
Bien que l'utilisation de l'outil de conversion est une solution pratique, cela peut aussi être l'occasion de passer à une méthodologie orientée objet. Cette approche élimine non seulement le besoin du préfixe mysqli_ sur les fonctions, mais simplifie également l'organisation du code et améliore la lisibilité.
Pour illustrer les principales différences, considérez ce qui suit exemples :
Connexion :
<br>mysql_connect($host, $username, $password);<br>
vs.
<br>$mysqli = nouveau mysqli($host, $username, $password, $database);<br>
Requête :
<br>$result = mysql_query($sql);<br>
vs.
<br>$result = mysqli_query($mysqli, $sql);<br></ pré></p> <p><strong>Récupérer Résultat :</strong><br><pre class="brush:php;toolbar:false"><br>while ($row = mysql_fetch_assoc($result))<br>
vs.
<br>pendant ($ligne = $result->fetch_assoc())<br>
Fermer Connexion :
<br>mysql_close();<br>
vs.
&l t;pre>
$mysqli->close();
Pendant le remplacement aveugle des fonctions mysql_ par mysqli_ peut sembler une solution rapide, cela peut entraîner des erreurs et une complexité inutile. Envisagez plutôt d'utiliser l'outil de conversion ou d'adopter une approche orientée objet pour une base de code plus efficace et plus maintenable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!