Ce face mysqli_sqlstate
SQLSTATE este un cod standard pentru tipul erorii, comun mai multor baze de date: primele două caractere arată clasa (23 integritate, 42 sintaxă sau obiect inexistent, 08 conexiune). 00000 înseamnă că nu a fost eroare. Codul specific MySQL îl dă mysqli_errno.
Exemplele de pe această pagină folosesc baza de date magazin, cu tabelul produse (coloanele id INT AUTO_INCREMENT, nume VARCHAR(100) NOT NULL, pret INT și stoc INT) și patru rânduri: Laptop (3200 lei, 5 buc.), Mouse (80 lei, 40 buc.), Monitor (900 lei, 0 buc.) și Tastatură (150 lei, 12 buc.). Comenzile SQL sunt explicate în secțiunea MySQL. Rezultatele au fost scrise pentru MySQL 8, pentru că exemplele au nevoie de un server de baze de date.
Parametri
| Parametru | Descriere |
|---|---|
$mysql |
Conexiunea. |
Ce returnează
Codul SQLSTATE.
Exemple
Exemplul 1: SQLSTATE pentru câteva erori
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
foreach (["SELECT 1", "SELECT * FROM produs", "SELECT * FORM produse", "INSERT INTO produse (nume) VALUES (NULL)"] as $sql) {
mysqli_query($conn, $sql);
echo mysqli_sqlstate($conn) . " (" . mysqli_errno($conn) . ")\n";
}
Rezultat (cu un server MySQL și tabelul produse de mai sus)
00000 (0)
42S02 (1146)
42000 (1064)
23000 (1048)
Greșeli frecvente
- Decizi tratarea erorii după mesaj (text în engleză, care se poate schimba între versiuni). Folosește
mysqli_errnosaumysqli_sqlstate.
Comenzi înrudite
mysqli_error_list: Returnează lista erorilor ultimei operații pe conexiune, fiecare cu cod, SQLSTATE și mesaj.mysqli_error: Returnează mesajul de eroare al ultimei operații MySQL de pe conexiune, sau text gol dacă nu a fost eroare.mysqli_stmt_sqlstate: Returnează codul SQLSTATE (5 caractere) al ultimei erori a unei interogări pregătite.