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 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!