mysqli_stmt_errno în PHP

Returnează codul ultimei erori a unei interogări pregătite (0 dacă nu a fost eroare).

Sintaxă
mysqli_stmt_errno(mysqli_stmt $statement): int

Ce face mysqli_stmt_errno

Este varianta pentru interogări pregătite a lui mysqli_errno. Codurile frecvente: 1062 valoare duplicată, 1048 coloană care nu poate fi NULL, 1452 cheie străină inexistentă.

Din PHP 8.1, erorile aruncă implicit mysqli_sql_exception, cu același cod în getCode(). Funcția este folosită mai ales după mysqli_report(MYSQLI_REPORT_OFF).

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
$statement Interogarea pregătită.

Ce returnează

Codul erorii sau 0.

Exemple

Exemplul 1: Coloană obligatorie lăsată goală

<?php
mysqli_report(MYSQLI_REPORT_OFF);
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");

$stmt = mysqli_prepare($conn, "INSERT INTO produse (nume, pret, stoc) VALUES (?, ?, ?)");
$nume = null;
$pret = 100;
$stoc = 1;
mysqli_stmt_bind_param($stmt, "sii", $nume, $pret, $stoc);

if (!mysqli_stmt_execute($stmt)) {
    echo "Cod: " . mysqli_stmt_errno($stmt);
}

Rezultat (cu un server MySQL și tabelul produse de mai sus)

Cod: 1048

Greșeli frecvente

  • Citești mysqli_errno($conn) după o eroare a unei interogări pregătite. Funcțiile de conexiune și cele de interogare au erori separate; folosește varianta mysqli_stmt_.

Comenzi înrudite

  • mysqli_stmt_error: Returnează mesajul ultimei erori a unei interogări pregătite, sau text gol.
  • mysqli_stmt_sqlstate: Returnează codul SQLSTATE (5 caractere) al ultimei erori a unei interogări pregătite.
  • mysqli_error: Returnează mesajul de eroare al ultimei operații MySQL de pe conexiune, sau text gol dacă nu a fost eroare.