Strona główna >PHP >Leksykon PHP – funkcje >mysqli_connect_error

mysqli_connect_error

mysqli_connect_error()

Zwraca tekst błędu ostatniego wywołania mysqli_connect() albo null, jeśli połączenie się udało. Tekst pochodzi z serwera i zawiera nazwę użytkownika oraz serwer.

Przykłady

mysqli_report(MYSQLI_REPORT_OFF);
$db = @mysqli_connect("localhost", "user", "wrong-password", "shop");
if ($db === false) {
    // szczegóły do dziennika, ogólny komunikat dla odwiedzającego
    error_log("Nieudane połączenie z bazą: " . mysqli_connect_errno() . " " . mysqli_connect_error());
    echo "Baza danych jest chwilowo niedostępna."; // Baza danych jest chwilowo niedostępna.
}
var_dump(strpos(mysqli_connect_error(), "Access denied") === 0); // bool(true)
$db = mysqli_connect("localhost", "user", "password", "shop");
var_dump(mysqli_connect_error()); // NULL

Na co uważać

  • Tekst błędu wypisany na stronie zdradza napastnikowi użytkownika bazy i serwer – należy tylko do dziennika.
  • Przy błędzie 1045 („Access denied for user …”) sprawdź nazwę, hasło i także to, z jakiego adresu użytkownik może się łączyć ('user'@'localhost' wobec 'user'@'%').

Powiązane funkcje:
mysqli_connect_errno()
mysqli_connect()
mysqli_error()
error_log()