(PHP 5, PHP 7, PHP 8)
mysqli::$sqlstate -- mysqli_sqlstate — Retourne l'erreur SQLSTATE de la dernière opération MySQL
Style orienté objet
Style procédural
Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière erreur.
Le code d'erreur '00000'
signifie : "pas d'erreur". Les valeurs
sont spécifiées par les normes ANSI SQL et ODBC. Pour une liste des valeurs
possibles, voyez : » http://dev.mysql.com/doc/mysql/en/error-handling.html.
Note:
Notez que toutes les erreurs de MySQL n'ont pas encore de correspondance avec les erreurs SQLSTATE. La valeur
HY000
(erreur générale) est utilisée pour les erreurs sans correspondance.
mysql
Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().
Retourne une chaîne contenant le code d'erreur
SQLSTATE de la dernière erreur. Le code est constitué de
5 caractères : '00000'
représente l'absence
d'erreurs.
Exemple #1 Exemple avec $mysqli->sqlstate
Style orienté objet
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* La table Ville existe déjà, nous devrions avoir une erreur */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erreur - SQLSTATE %s.\n", $mysqli->sqlstate);
}
Style procédural
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* La table Ville existe déjà, nous devrions avoir une erreur */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erreur - SQLSTATE %s.\n", mysqli_sqlstate($link));
}
Les exemples ci-dessus vont afficher :
Erreur - SQLSTATE 42S01.