J'ai cherché sur le net et jusqu'à présent, ce que j'ai vu, c'est que vous pouvez utiliser mysql_
et mysqli_
signifier ensemble:
<?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 lorsque j'utilise ce code, ce que j'obtiens est:
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? Puis-je utiliser mysql_
et mysqli
ensemble? Ou est-ce normal? Est-ce que je peux vérifier si les connexions sont valides du tout? (le if(mysq...)
)
mysql_*
complètement d' utiliser des fonctions. Ils sont sujets aux erreurs et dangereux, et ils seront bientôt supprimés de PHP (ils sont marqués comme obsolètes pour le moment). [Cette excellente réponse] [0] va plus en détail en expliquant pourquoi ils sont mauvais. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
fonctions et du bon code avec mysql_*
celles-ci. Mais cette dernière catégorie est marquée comme obsolète car c'est l'ensemble de fonctions inférieur, ne pouvant pas prendre en charge les invocations de style OO ou même les instructions préparées (pour ne citer que deux exemples). Si l'on a le choix entre deux outils pour faire le même travail, dont l'un est nettement meilleur à long terme et plus flexible, la bonne réponse n'est-elle pas évidente?