Ho cercato in rete e finora quello che ho visto è che puoi usare mysql_
e mysqli_
insieme significano:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
o
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Sono validi ma quando utilizzo questo codice ciò che ottengo è:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Per il primo e lo stesso tranne con mysqli_close()
. Per il secondo.
Qual è il problema? Non posso usare mysql_
e mysqli
insieme? O è normale? È il modo in cui posso verificare se le connessioni sono valide? (il if(mysq...)
)
mysql_*
funzioni del tutto. Sono soggetti a errori e non sicuri e verranno presto rimossi da PHP (sono contrassegnati come deprecati al momento). [Questa ottima risposta] [0] va in modo più dettagliato spiegando perché sono cattivi. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
funzioni e codice buono con mysql_*
quelle. Ma quest'ultima categoria è contrassegnata come deprecata poiché è l'insieme di funzioni inferiore, non essendo in grado di supportare invocazioni in stile OO o persino istruzioni preparate (per citare solo due esempi). Data la possibilità di scegliere tra due strumenti per svolgere lo stesso lavoro, uno dei quali è chiaramente migliore a lungo termine e più flessibile, non è ovvia la risposta corretta?