downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

mysqli_info> <mysqli->server_version
[edit] Last updated: Fri, 17 May 2013

view this page in

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0)

mysqli::get_warnings -- mysqli_get_warningsGet result of SHOW WARNINGS

Descrição

Estilo orientado à objeto

mysqli_warning mysqli::get_warnings ( void )

Estilo procedural

mysqli_warning mysqli_get_warnings ( mysqli $link )
Aviso

Esta função não está documentada; somente a lista de argumentos está disponível.



add a note add a note User Contributed Notes mysqli::get_warnings - [2 notes]
up
0
marcus at synchromedia dot co dot uk
3 years ago
With a bit of rooting about with reflection, I spotted that the mysqli_warning class has a next() function, so I tried calling it and it does indeed progress through the available warnings! Following on from my earlier example:

<?php
$r
= mysqli_query($db, "INSERT INTO blah SET z = '1'");
$j = mysqli_warning_count($db);
if (
$j > 0) {
   
$e = mysqli_get_warnings($db);
    for (
$i = 0; $i < $j; $i++) {
       
var_dump($e);
       
$e->next();
    }
}
?>

There is a simple way of traversing the warnings:

<?php
$r
= mysqli_query($db, "INSERT INTO blah SET z = '1'");
if (
mysqli_warning_count($db)) {
  
$e = mysqli_get_warnings($db);
   do {
       echo
"Warning: $e->errno: $e->message\n";
   } while (
$e->next());
}
?>
up
0
marcus at synchromedia dot co dot uk
3 years ago
I'm not sure how useful this function is as implemented. Take this example:

CREATE TABLE `blah` (
  `x` varchar(100) NOT NULL,
  `y` varchar(100) NOT NULL,
  `z` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO blah SET z = '1';
Query OK, 1 row affected, 2 warnings (0.00 sec)

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1364 | Field 'x' doesn't have a default value |
| Warning | 1364 | Field 'y' doesn't have a default value |
+---------+------+----------------------------------------+

Doing the same from PHP using mysqli_get_warnings(), you get this instead:

object(mysqli_warning)#4 (3) {
  ["message"]=>
  string(38) "Field 'x' doesn't have a default value"
  ["sqlstate"]=>
  string(5) "HY000"
  ["errno"]=>
  int(1364)
}

i.e. it only returns the first warning. I suspect it should return an array of these objects rather than just one. At least you know what the return value looks like now, since the docs don't say!

 
show source | credits | stats | sitemap | contact | advertising | mirror sites