Ich habe das Netz durchsucht und bisher habe ich gesehen, dass Sie verwenden können mysql_
und mysqli_
zusammen bedeuten:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
oder
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Sind gültig, aber wenn ich diesen Code verwende, bekomme ich Folgendes:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Zum ersten und gleichen außer mit mysqli_close()
. Für den zweiten.
Was ist das Problem? Kann ich nicht mysql_
und mysqli
zusammen verwenden? Oder ist es normal? Kann ich auf diese Weise überprüfen, ob die Verbindungen überhaupt gültig sind? (die if(mysq...)
)
mysql_*
Funktionen insgesamt vermeiden . Sie sind fehleranfällig und unsicher und werden bald aus PHP entfernt (sie werden derzeit als veraltet markiert ). [Diese großartige Antwort] [0] erklärt ausführlicher, warum sie schlecht sind. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
Funktionen und guten Code mit mysql_*
solchen schreiben . Die letztere Kategorie wird jedoch als veraltet markiert, da es sich um die minderwertige Gruppe von Funktionen handelt, die keine Aufrufe im OO-Stil oder sogar vorbereitete Anweisungen unterstützen können (um nur zwei Beispiele zu nennen). Ist die richtige Antwort nicht offensichtlich, wenn zwei Tools ausgewählt werden, um denselben Job zu erledigen, von denen eines auf lange Sicht eindeutig besser und flexibler ist?