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
Libérer: 2024-11-26 15:53:13
original
931 Les gens l'ont consulté

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);
Copier après la connexion

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

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Copier après la connexion

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);
Copier après la connexion

Orienté objet :

$result = $mysqli->query($sql);
Copier après la connexion

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))
Copier après la connexion

Orienté objet :

while ($row = $result->fetch_assoc())
Copier après la connexion

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);
Copier après la connexion

Orienté objet :

$mysqli->close();
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal