mysqli_get_warnings în PHP

mysqli avansat PHP 5.1+

Returnează avertismentele ultimei interogări ca obiect mysqli_warning, pe care îl parcurgi cu next().

Sintaxă
mysqli_get_warnings(mysqli $mysql): mysqli_warning|false

Ce face mysqli_get_warnings

Obiectul mysqli_warning conține primul avertisment, cu proprietățile message, errno și sqlstate. Metoda next() trece la următorul și returnează false când nu mai sunt. Dacă nu există avertismente, funcția returnează false.

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ă

Un obiect mysqli_warning sau false.

Exemple

Exemplul 1: Toate avertismentele unei comenzi

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

mysqli_query($conn, "DROP TABLE IF EXISTS tabel_vechi, tabel_test");

if ($avertisment = mysqli_get_warnings($conn)) {
    do {
        echo "$avertisment->errno: $avertisment->message\n";
    } while ($avertisment->next());
}

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

1051: Unknown table 'magazin.tabel_vechi'
1051: Unknown table 'magazin.tabel_test'

Greșeli frecvente

  • Rulezi o altă interogare înainte să citești avertismentele. Avertismentele se referă mereu la ultima comandă, deci le pierzi pe cele vechi.

Comenzi înrudite

  • mysqli_warning_count: Returnează numărul de avertismente generate de ultima interogare pe conexiune.
  • mysqli_stmt_get_warnings: Returnează avertismentele generate de o interogare pregătită, ca obiect mysqli_warning.
  • mysqli_error_list: Returnează lista erorilor ultimei operații pe conexiune, fiecare cu cod, SQLSTATE și mesaj.