(PHP 5, PHP 7, PHP 8)
mysqli::$sqlstate -- mysqli_sqlstate — Retorna o erro SQLSTATE da operação MySQL anterior
Estilo orientado a objetos
Estilo procedural
Retorna uma string contendo o código de erro SQLSTATE para o último erro.
O código de erro consiste em cinco caracteres. '00000'
significa nenhum erro.
Os valores são especificados por ANSI SQL e ODBC. Para obter uma lista de valores possíveis, consulte
» http://dev.mysql.com/doc/mysql/en/error-handling.html.
Nota:
Observe que nem todos os erros do MySQL ainda estão mapeados para SQLSTATE. O valor
HY000
(erro geral) é usado para erros não mapeados.
mysql
Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()
Retorna uma string contendo o código de erro SQLSTATE para o último erro.
O código de erro consiste em cinco caracteres. '00000'
significa nenhum erro.
Exemplo #1 $mysqli->sqlstate example
Estilo orientado a objetos
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Table City já existe, então devemos receber um erro */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erro - SQLSTATE %s.\n", $mysqli->sqlstate);
}
Estilo procedural
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Table City já existe, então devemos receber um erro */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erro - SQLSTATE %s.\n", mysqli_sqlstate($link));
}
Os exemplos acima produzirão:
Erro - SQLSTATE 42S01.