mysqli_sqlstate în PHP

Returnează codul SQLSTATE (5 caractere) al ultimei erori de pe conexiune.

Sintaxă
mysqli_sqlstate(mysqli $mysql): string

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_errno sau mysqli_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.