J'ai cherché sur le net et jusqu'à présent, ce que j'ai vu, c'est que vous pouvez utiliser mysql_
Et mysqli_
Ensemble, ce qui signifie:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
ou
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Sont valides mais quand j'utilise ce code, je reçois:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Pour le premier et le même sauf avec mysqli_close()
. Pour le second.
Quel est le problème? Je ne peux pas utiliser mysql_
Et mysqli
ensemble? Ou est-ce normal? Est-ce que je peux vérifier si les connexions sont valides? (le if(mysq...)
)
Non, vous ne pouvez pas utiliser mysql
et mysqli
ensemble. Ce sont des API distinctes et les ressources qu'elles créent sont incompatibles entre elles.
Il y a un mysqli_close
, bien que.
Juste pour donner une réponse générale ici sur les trois API MYSQL avec une référence:
Vous ne pouvez mélanger aucun des trois ( mysql_*
, mysqli_*
, PDO
) API MYSQL de PHP ensemble, cela ne fonctionne tout simplement pas. C'est même dans le FAQ manuelle :
Il est impossible de mélanger les extensions . Ainsi, par exemple, passer une connexion mysqli à PDO_MySQL ou ext/mysql ne fonctionnera pas .
Vous devez utiliser la même API MySQL et ses fonctions associées, de la connexion à l'interrogation.
Techniquement, vous pouvez utiliser autant de connexions distinctes que vous le souhaitez, tandis que votre problème est causé par une simple faute de frappe - vous ne pouvez pas utiliser les ressources d'une extension avec des fonctions d'une autre, ce qui est tout à fait évident.
Cependant, vous devez éviter plusieurs connexions à partir du même script, peu importe d'une seule API ou de différentes. Comme cela va surcharger votre serveur de base de données et épuiser ses ressources. Donc, bien que techniquement vous le puissiez, vous ne devez pas mélanger différentes extensions dans votre code, sauf pour la courte période de refactoring.