我在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.