die mysqli_select_db
-Funktion erfordert bei Verwendung der prozeduralen API die Übergabe einer tatsächlichen Verbindung als ersten Parameter, wie auf den Manpages gezeigt
. Diese Verbindung oder dieser Link ist das, was mysqli_connect
ist zurückgibt, also sollten Sie nicht ignorieren, was mysqli_connect
ist zurück
, sondern weisen Sie es einer Variablen zu.
Die Signatur der Funktion sagt Ihnen das alles deutlich, also bitte, RTM . Hier sind ein paar Copy-Paste-Übungen:
\/=============================|
bool mysqli_select_db ( mysqli $link , string $dbname ) ||
//returns bool argument 1 argument 2 ||
mysqli mysqli_connect ([...]) ||
//returns type mysqli accepts vast number of arguments ||
// ||
|======== useful here =======================|
Das bedeutet, dass Sie Folgendes schreiben müssen:
$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');
Wie die manuelle &&-Signatur zeigt diese mysqli_select_db
gibt einen booleschen Wert zurück. true
bedeutet, dass die DB erfolgreich ausgewählt wurde, false
zeigt einen Ausfall an. Am besten gewöhnen Sie sich an, Funktionsrückgabewerte zu überprüfen . Egal wie trivial es scheinen mag. Also:
$db = mysqli_connect('localhost', 'root', '');
if (!mysqli_select_db($db, 'video_system'))
{//if return value is false, echo error message and exit script
echo 'Failed to select db "video_system": ', mysqli_error($db), PHP_EOL;
$db = null;//optional, but generally safer
exit(1);//stop execution
}
//db selected, get to work here
Aber Sie können diesen zweiten Funktionsaufruf einfach weglassen, indem Sie den DB-Namen Ihrer Wahl an mysqli_connect
übergeben Funktion aus dem Off:
$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');
Das erspart Ihnen den Overhead eines zusätzlichen Funktionsaufrufs, was die Performance leicht verbessert. Ich habe auch den localhost
geändert String auf die IP-Adresse 127.0.0.1, was auch helfen kann, da die Verwendung der IP bedeutet, dass der String nicht in die entsprechende IP-Adresse aufgelöst werden muss.
Alles in allem denke ich, dass es am besten ist, wenn Sie sich etwas Zeit nehmen Lesen der Dokumentation