繁体   English   中英

wpdb 查询返回错误结果

[英]wpdb query gives back a wrong result

我在我的 WordPress 页面上的 PHP 代码段中编写了一些代码,并且 wpdb 查询总是给我错误的结果。

在 WordPress

$column07a = $_POST[$attributes[8]];         **<-** echo displayed **24253**

$queryColumn07 = $wpdb->prepare( " SELECT DISTINCT p.id 
                        FROM plz p 
                            LEFT JOIN vermieter v ON v.id_plz=p.id 
                        WHERE p.postleitzahl='$column07a' " );`     

$column07 = $wpdb->query( $queryColumn07 ); **<-** echo displayed **1** 

在 SQL

SELECT DISTINCT p.id 
FROM plz p 
    LEFT JOIN vermieter v ON v.id_plz=p.id 
WHERE p.postleitzahl='24253';   

phpmyadmin 显示3这是该查询的正确结果

我做错了什么? 你能以某种方式帮助我吗?

结果得到1的原因是因为您使用的是query()方法而不是get_results()get_var()

$wpdb::query()文档中:

返回:

( int | bool ) Boolean 对于 CREATE、ALTER、TRUNCATE 和 DROP 查询为真。 为所有其他查询影响/选择的行数 Boolean 错误时为假。

(强调我的。)

所以,当你运行这个:

$column07 = $wpdb->query( $queryColumn07 );

您得到1 ,因为query()正在返回您的SELECT查询找到的行数。

如前所述,在您的特定情况下,您希望使用get_var()来获取查询返回的实际 ID:

$column07 = $wpdb->get_var( $queryColumn07 );

echo $column07; // Should output 3 according to your comments.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM