Como posso obter $ wpdb para mostrar avisos do MySQL?

Em alguns casos, quando recebemos uma consulta incorreta, tentaremos executar a consulta e dar um aviso (em vez de um erro). No prompt do MySQL, para ver esses avisos, você pode executar SHOW WARNINGS; .

Por exemplo:

 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) 

No entanto, se eu executar código PHP assim, não há como detectar esse aviso do MySQL:

 $results = $wpdb->get_results('SELECT * FROM wp_posts WHERE id = "hello"'); 

$wpdb->show_errors e $wpdb->print_error não parecem detectar avisos do MySQL.

Como posso detectar os avisos do MySQL?

Solutions Collecting From Web of "Como posso obter $ wpdb para mostrar avisos do MySQL?"

A partir de uma visão rápida através da fonte, não parece que o wpdb implemente ativamente qualquer manipulação de avisos (em oposição a erros).

Proativamente, você pode simplesmente pedir por eles como uma consulta personalizada ( $wpdb->get_results( 'SHOW WARNINGS;' ) Eu suponho, mas, implicitamente, eles simplesmente não são rastreados pelo núcleo do WP.