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()