Maison >base de données >tutoriel mysql >Puis-je simplement remplacer « mysql_ » par « mysqli_ » dans mon code PHP ?

Puis-je simplement remplacer « mysql_ » par « mysqli_ » dans mon code PHP ?

DDD
DDDoriginal
2024-11-26 15:53:13884parcourir

Can I Simply Replace `mysql_` with `mysqli_` in My PHP Code?

Remplacement aveugle de mysql_ par mysqli_ : une mise en garde

L'obsolescence et la suppression éventuelle des fonctions mysql_ de PHP ont soulevé la question : peuvent-elles être remplacées de manière transparente par mysqli_ ? Bien qu'il puisse être tentant de supposer une équivalence, la réponse est un non catégorique.

Outil de conversion : une solution temporaire

Heureusement, pour ceux qui disposent d'un code existant étendu utilisant les fonctions mysql_, il existe un convertisseur outil (https://github.com/philip/MySQLConverterTool) qui peut automatiser la plupart du processus de conversion. Cela peut fournir une fonctionnalité immédiate, permettant aux scripts de s'exécuter comme prévu.

Migration manuelle : adoption de l'orientation objet

Au-delà de la solution temporaire offerte par l'outil de conversion, il est prudent de migrer vers une solution orientée objet. méthodologie d'interaction avec les bases de données. Cette approche offre plusieurs avantages, notamment une organisation et une maintenabilité améliorées du code.

1. Établissement de la connexion

Dans mysqli_, l'établissement d'une connexion implique de créer un nouvel objet mysqli et de l'attribuer à une variable PHP. Par exemple :

$mysqli = new mysqli($host, $username, $password, $database);

Assurez-vous d'activer le rapport d'erreurs pour mysqli_ avant d'ouvrir la connexion :

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

2. Exécution de requêtes

Toutes les fonctions mysqli_ nécessitent désormais la connexion comme premier argument dans le code procédural ou comme méthode objet dans le code orienté objet. Pour exécuter une requête, le code ressemblerait à ceci :

Procédural :

$result = mysqli_query($mysqli, $sql);

Orienté objet :

$result = $mysqli->query($sql);

3. Récupération des résultats

La récupération des résultats reste largement inchangée dans mysqli_ par rapport à son homologue mysql_.

Procédural :

while ($row = mysqli_fetch_assoc($result))

Orienté objet :

while ($row = $result->fetch_assoc())

4. Fermeture de la connexion

Fermer correctement la connexion est essentiel, et le processus reste cohérent avec mysql_ dans mysqli_ :

Procédural :

mysqli_close($mysqli);

Orienté objet :

$mysqli->close();

Supplémentaire Considérations

La migration de mysql_ vers mysqli_ implique la conversion de toutes les fonctions associées, y compris celles de fermeture de connexion, de publication des résultats, de gestion des erreurs et de comptage de lignes.

N'oubliez pas que même si la conversion initiale peut nécessiter quelques le travail manuel, l'adoption de l'approche orientée objet peut générer des avantages à long terme pour votre base de code. Ainsi, même si remplacer aveuglément les fonctions mysql_ par mysqli_ n'est pas une solution idéale, cela peut être un tremplin vers une base de code PHP plus moderne 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!

Déclaration:
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