如何让$wpdb显示MySQL警告?

时间:2017-10-19 作者:Flimm

在某些情况下,当给出错误的查询时,将尝试运行该查询,并给出警告(而不是错误)。在MySQL提示符中,要查看这些警告,可以运行SHOW WARNINGS;.

例如:

mysql> SELECT * FROM wp_posts WHERE id = "hello";
Empty set, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+---------+------+-------------------------------------------+
| Level   | Code | Message                                   |
+---------+------+-------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: \'hello\' |
+---------+------+-------------------------------------------+
1 row in set (0.00 sec)
但是,如果我像这样运行PHP代码,则无法检测到此MySQL警告:

$results = $wpdb->get_results(\'SELECT * FROM wp_posts WHERE id = "hello"\');
$wpdb->show_errors$wpdb->print_error 似乎没有检测到MySQL警告。

如何检测MySQL警告?

1 个回复
SO网友:Rarst

从源头上看wpdb 主动执行任何警告处理(与错误相反)。

您可以主动地将它们作为自定义查询进行查询($wpdb->get_results( \'SHOW WARNINGS;\' ) 我想,但隐含地说,它们只是没有被WP核心跟踪。

结束