Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je migrer en toute sécurité des fonctions « mysql_ » vers « mysqli_ » en PHP ?

Mary-Kate Olsen
Libérer: 2024-11-24 02:02:14
original
422 Les gens l'ont consulté

How Can I Safely Migrate from `mysql_` to `mysqli_` Functions in PHP?

Remplacement direct des fonctions mysql_ par mysqli_ : une mise en garde

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.

Les différences

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.

L'outil de conversion

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.

Approche alternative : méthodologie orientée objet

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é.

Exemples spécifiques

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();

Conclusion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal