wpdb查询返回错误的结果



我在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(CREATE、ALTER、TRUNCATE和DROP查询的布尔值为true为所有其他查询影响/选择的行数。出现错误时为布尔值false。

(强调矿。(

所以,当你运行这个:

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

得到1是因为query()返回SELECT查询所找到的行数。

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

$column07 = $wpdb->get_var( $queryColumn07 );
echo $column07; // Should output 3 according to your comments.

最新更新