sql >> Databáze >  >> RDS >> Mysql

Chyba připojení PHP k databázi

mysqli_select_db funkce, při použití procedurálního API vyžaduje, abyste jako první parametr předali skutečné připojení, jak je uvedeno na manuálových stránkách . Toto připojení nebo odkaz je to, co mysqli_connect vrátí, takže byste neměli ignorovat to, co mysqli_connect vrací , ale raději ji přiřaďte proměnné.
Podpis funkce vám toto vše jasně říká, takže prosím RTM . Zde je několik zkopírovaných úkolů:

                            \/=============================|
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 =======================|

To znamená, že budete muset napsat:

$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');

Stejně jako v manuálu &&signature show, toto mysqli_select_db vrátí bool. true znamená, že DB byla úspěšně vybrána, false označuje selhání. Nejlepší je osvojit si zvyk kontrolovat návratové hodnoty funkcí . Bez ohledu na to, jak triviální se to může zdát. Takže:

$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

Toto druhé volání funkce však můžete snadno vynechat předáním zvoleného názvu DB do mysqli_connect funkce vypnuta:

$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');

Což vám ušetří režii za volání další funkce, což mírně zlepšuje výkon. Také jsem změnil localhost řetězec na IP adresu 127.0.0.1, což může také pomoci, protože použití IP znamená, že řetězec nemusí být převáděn na odpovídající IP adresu.
Celkově si myslím, že by bylo nejlepší strávit nějaký čas čtení dokumentace




  1. Potíže s UnixODBC, FreeTDS a PyODBC

  2. Co znamená %Type v Oracle sql?

  3. mysql show Počet řádků z jiné tabulky v každém řádku

  4. Použití zobrazení SQL k přidání/úpravě dat v aplikaci Microsoft Access