[英]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.