Maison >développement back-end >tutoriel php >Les API `mysql_` et `mysqli_` de MySQL peuvent-elles être utilisées ensemble en PHP ?

Les API `mysql_` et `mysqli_` de MySQL peuvent-elles être utilisées ensemble en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-04 11:21:35406parcourir

Can MySQL's `mysql_` and `mysqli_` APIs Be Used Together in PHP?

Les API MySQL peuvent-elles être mélangées en PHP ?

Le mélange des API MySQL en PHP n'est pas recommandé. PHP fournit deux extensions d'API MySQL : mysql_ et mysqli_. Ces extensions sont distinctes et leurs ressources sont incompatibles.

Le code que vous avez fourni illustre le problème :

$con = mysqli_connect("localhost", "root" ,"" ,"mysql");

if( mysqli_connect_errno( $con ) ) {
    echo "failed to connect";
}else{
    echo "connected";
}

mysql_close($con);
echo "Done";

Ce code génère l'erreur suivante :

Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done

Cette erreur se produit car mysql_close() attend une ressource MySQL en entrée, mais vous fournissez une ressource mysqli ressource.

Solution :

Pour résoudre ce problème, utilisez une seule extension d'API MySQL de manière cohérente dans tout votre code. Si vous utilisez l'extension mysqli_, utilisez mysqli_connect() et mysqli_close() pour ouvrir et fermer la connexion. De même, si vous utilisez l'extension mysql_, utilisez mysql_connect() et mysql_close().

Vérification de la validité de la connexion :

mysql_connect_errno() et mysqli_connect_errno() peuvent être utilisé pour vérifier si la connexion est valide. Si la valeur renvoyée est 0, la connexion est valide. Sinon, il y a une erreur.

Exemple :

$con = mysqli_connect("localhost", "root" ,"" ,"mysql");

if( mysqli_connect_errno( $con ) ) {
    echo "failed to connect: " . mysqli_connect_error();
}else{
    echo "connected";
}

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