English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A função mysqli_get_warnings() retorna os erros gerados pela última consulta executada.
Se a sua última chamada de função MySQLi executar uma consulta MySQL e gerar algum erro.mysqli_get_warnings()A função retorna um array com os erros gerados pela última consulta executada.
mysqli_get_warnings($con)
Número | Parâmetros e descrição |
---|---|
1 | con (obrigatório) Este é um objeto que representa a conexão com o servidor MySQL. |
A função PHP mysqli_get_warnings() retorna um array que contém os avisos gerados durante a execução da última consulta.
Esta função foi introduzida na versão do PHP5Introduzido na versão
Suponha que tenhamos criado uma tabela chamada Emp, conforme abaixo:
CREATE TABLE EMP( ID TINYINT, Nome_Primeiro VARCHAR(50) NOT NULL, Nome_Ultimo VARCHAR(10) NOT NULL, Data_De_Nascimento date, Salário Int(255) );
A seguir, um exemplo demonstramysqli_get_warnings()Uso da função (estilo procedimental)-
<?php //Estabelecer conexão $con = mysqli_connect("localhost", "root", "password", "mydb"); //Inserir registro na tabela employee $sql = "INSERT IGNORE into emp values(1, 'Sanjay', NULL, DATE('1981-12-05'), 2566); mysqli_query($con, $sql); //Avisos $warnings = mysqli_get_warnings($con); print("Aviso(s): "."\n"); print_r($warnings); $sql = "INSERT IGNORE into emp values (15, 'Swetha', 'Yellapragada', DATE('1990-11-25'), 9986), (15, NULL, 'Prayaga', DATE('1990-11-25'), 9986); mysqli_query($con, $sql); //Avisos $warnings = mysqli_get_warnings($con); print("\n"."Avisos: "); print_r($warnings); //Fechar conexão mysqli_close($con); ?>
Resultados de saída
Avisos: mysqli_warning Objeto ( [message] => Coluna 'Last_Name' não pode ser nula [sqlstate] => HY000 [errno] => 1048 ) Avisos: objeto mysqli_warning ( [message] => Data truncada para a coluna 'Last_Name' na linha 1 [sqlstate] => HY000 [errno] => 1265 )
Aqui está a funçãomysqli_get_warnings()Outro exemplo-
<?php //Estabelecer conexão $con = mysqli_connect("localhost", "root", "password", "mydb"); //Excluir tabela desconhecida mysqli_query($con, "drop table if exists WrongTable"); print("\n"."Avisos: "."\n"); print_r(mysqli_get_warnings($con)); //Fechar conexão mysqli_close($con); ?>
Resultados de saída
Avisos: mysqli_warning Objeto ( [message] => Tabela desconhecida 'mydb.wrongtable' [sqlstate] => HY000 [errno] => 1051 )
Você também pode usar a classe mysqli_warningnext()Função uma após a outra, recupera alertas, conforme mostrado a seguir:
<?php //Estabelecer conexão $con = new mysqli("localhost", "root", "password", "mydb"); //Inserir registro na tabela employee $con -> consultar("INSERT IGNORE into emp values(105, NULL, 'Yellapragada', DATE('1981-12-05'), 2566)"); if($con-> warning_count){ $w = mysqli_get_warnings($con); do { echo "Aviso: $w-> errno: $w-> mensagem\n"; } while ($w-> next()); } //Fechar conexão $con -> fechar(); ?>
Resultados de saída
Aviso: 1048A coluna 'First_Name' não pode ser nula Aviso: 1265Data truncada para a coluna 'Last_Name' na linha 1
Retorna o erro da última consulta executada
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "mydb"; $conn = new mysqli($servername, $username, $password, $dbname); if (!$conn->real_connect($servername, $username, $password, $dbname)) { die('Erro de conexão ('.mysqli_connect_errno().') '.mysqli_connect_error()); } print("Conexão de banco de dados estabelecida"."\n"); mysqli_query($conn, "CREATE TABLE sample (ID INT, Name VARCHAR(20))"); $query = "INSERT IGNORE INTO sample (id,name) VALUES ( 1'Rajesh Ramayan Kootrapally')"; mysqli_query($conn, $query); $count = mysqli_warning_count($conn); print("Número de advertências na consulta:".$count."\n"); if ($count) { $warnings = mysqli_get_warnings($conn); print_r($warnings); } mysqli_close($conn); ?>
Resultados de saída
Conexão de banco de dados estabelecida Número de advertências na consulta:1 mysqli_warning Objeto ( [message] => Dados truncados para a coluna 'Name' na linha 1 [sqlstate] => HY000 [errno] => 1265 )