Deprecated: Optional parameter $keys declared before required parameter $cms_id is implicitly treated as a required parameter in /home/www/dev/work/class/blog/CmsKey.php on line 75

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\php::$title is deprecated in /home/www/dev/work/website/lvesu/class/controller/blog/php.php on line 28

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\php::$outlink is deprecated in /home/www/dev/work/website/lvesu/template/blog/cms/php.manual.tpl on line 2

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\php::$status is deprecated in /home/www/dev/work/website/lvesu/template/blog/index.head.php on line 2
PHP - Manual: mysqli::get_warnings - 互联网笔记

略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: mysqli::get_warnings

2025-05-11

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

mysqli::get_warnings -- mysqli_get_warningsGet result of SHOW WARNINGS

说明

面向对象风格

public mysqli::get_warnings(): mysqli_warning|false

过程化风格

mysqli_get_warnings(mysqli $mysql): mysqli_warning|false

Returns a singly linked list comprised of mysqli_warning or false if there are no warnings. Each object in the list corresponds to a single line from the result of SHOW WARNINGS. Calling mysqli_warning::next() will refill the object with the values from the next row.

注意: To retrieve warning messages, it is recommended to use the SQL command SHOW WARNINGS [limit row_count] instead of this function.

警告

The linked list cannot be rewound or retrieved again.

参数

mysql

仅以过程化样式:由 mysqli_connect()mysqli_init() 返回的 mysqli 对象。

返回值

Returns a singly linked list comprised of mysqli_warning or false if there are no warnings.

示例

示例 #1 Traversing the linked list to fetch all warnings

面向对象风格

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("SELECT 1/0, CAST('NULL' AS UNSIGNED)");

if (
$mysqli->warning_count > 0) {
$warning = $mysqli->get_warnings();
if (
$warning !== false) {
do {
printf("Error number: %s\n", $warning->errno);
printf("Message: %s\n", $warning->message);
} while (
$warning->next());
}
}

过程化风格

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "user", "password", "test");

mysqli_query($link, "SELECT 1/0, CAST('NULL' AS UNSIGNED)");

if (
mysqli_warning_count($link) > 0) {
$warning = mysqli_get_warnings($link);
if (
$warning !== false) {
do {
printf("Error number: %s\n", $warning->errno);
printf("Message: %s\n", $warning->message);
} while (
$warning->next());
}
}

以上示例会输出:

Error number: 1365
Message: Division by 0
Error number: 1292
Message: Truncated incorrect INTEGER value: 'NULL'
添加备注

用户贡献的备注 1 note

up
9
Anonymous
10 years ago
Take note:
Calling this function will change the output of mysqli_affected_rows if any warnings are returned. So if you're using mysqli_affected_rows in your application, make sure to call it before calling mysqli_get_warnings.

官方地址:https://www.php.net/manual/en/mysqli.get-warnings.php

冷却塔厂家 广告
中文GPT4.0无需注册 广告
北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3