Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么Wordpress$wpdb->;返回的行为0时的query()响应1_Php_Wordpress - Fatal编程技术网

Php 为什么Wordpress$wpdb->;返回的行为0时的query()响应1

Php 为什么Wordpress$wpdb->;返回的行为0时的query()响应1,php,wordpress,Php,Wordpress,我在自定义函数中执行以下操作: $exists = $wpdb->query($wpdb->prepare(' SELECT COUNT(*) FROM wp_%d_gdsr_data_article WHERE post_id = %d ', $blog_id, $post_id)); $exists的计算结果为1,即使查询未返回任何行。此外,var_dump($wpdb->querys)会产生一个空值。有人知道这是怎么回事吗 谢谢,改用$wpd

我在自定义函数中执行以下操作:

    $exists = $wpdb->query($wpdb->prepare('
    SELECT COUNT(*)
    FROM wp_%d_gdsr_data_article
    WHERE post_id = %d

', $blog_id, $post_id));
$exists的计算结果为1,即使查询未返回任何行。此外,var_dump($wpdb->querys)会产生一个空值。有人知道这是怎么回事吗

谢谢,

改用
$wpdb->get\u var($query)

因此,使用
$wpdb->get_row()
将单行作为单个对象(或数组)检索,并使用
$wpdb->get_results()
获取结果集。

来自:

该函数返回一个整数 对应于行数 受影响/选定。如果有MySQL 错误,函数将返回FALSE。 (注意:因为0和FALSE都可以 返回,请确保使用 正确的比较运算符:相等 ==对同一性===)


查询返回1行,因此
query()
函数返回
1
,并且对于您在问题中发布的查询,将始终返回
1
,即使
计数选择的行数为0。使用HeadMedic建议的
get_var
get_row
,或
get_results
,获取查询的实际结果,可能是
0
1
2
,等等。

谢谢,但当它应该返回行计数时,为什么会返回1?还知道为什么$wpdb->querys是空的吗?
$wpdb->query()
应该只用于可执行查询,因为它只返回行数,如果没有行,则返回false<代码>$wpdb->querys
仅在将
savequerys
定义为true时使用。