我使用Wordpress函数$ wpdb-> get_results()
https://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
It says:
"If no matching rows are found, or if there is a database error, the return value will be an empty array."
然后我怎么知道查询是否失败或者它是否为空?
2 回答
使用
但是如果你想知道查询是否失败
在这里聚会迟到了,但我已经浏览了版本4.4.2的
wp-db.php
代码 .在第1422行,方法
flush()
内部有一些代码可以重置last_error
属性:这个
flush()
方法在1693行的query()
方法中调用:get_results()
方法在第2322行调用query()
:有了这个,我们可以非常肯定每次调用
get_results()
(或者get_row()
),query()
和flush()
都被调用,这可以确保在执行查询之前将last_error
设置为空字符串 .因此,假设查询运行(如果没有,则返回
null
- 例如,如果查询为空),如果查询因某种原因失败,则last_error
应包含错误消息 .由于
last_error
每次都是flush()
ed / reset,因此它应该只包含上次运行的查询的错误,而不是之前运行的任何查询的最后一个错误 . 考虑到这一点,依靠last_error
来确定查询是否出错是应该是安全的 .在我看来,这不是最直观的,但似乎已经足够了 .
就个人而言,为了自己的利益,我已经围绕_1415286编写了自己的课程 . 这是我的
getResults()
方法 .希望这可以帮助 .