检测$ wpdb-> get_results()生成的错误


9

使用$ wpdb-> get_results()时如何检测错误?

例如:

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");

前面的代码不会产生任何异常或错误;它只是将$ result设置为一个空数组。我们如何可靠地检测到由get_results()生成的错误?

Answers:


7

有一个用于存储最后一个错误字符串的类变量-$ wpdb-> last_error。从$ wpdb的编码方式来看,如果查询成功,则$ w​​pdb-> last_error将是一个空字符串,如果失败,它将是MySQL返回的错误字符串。所以像这样的事情就可以了。

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
  echo 'You done bad! ' . $wpdb->last_error;
}

听起来很合理-我现在无法对此进行研究,但是如果这行得通,将来它将派上用场!谢谢!:)
rinogo 2015年

在以后的任务中回到了这一点-很棒!我已将此代码放入函数中;我更新了您的答案;希望您不要介意!
rinogo

1

我能找到的最好的是:

$wpdb->show_errors();
$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
$wpdb->hide_errors();

不幸的是,这很难解决问题。我想以编程方式处理错误,而不仅仅是将其回显到输出流。


我想我总是可以通过截取输出缓冲区来做一些令人讨厌的事情...:/
rinogo 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.