Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-Verbindungsfehler mit der Datenbank

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