Php prepared语句返回一个空数组
我不能在准备好的语句中使用Php prepared语句返回一个空数组,php,sql,wordpress,Php,Sql,Wordpress,我不能在准备好的语句中使用%s echo $get_where; // returns: edited = 1 $get_uncontacted_members = $wpdb->get_results( $wpdb->prepare("SELECT * FROM yc_customers WHERE %s", $get_where) ); 此代码返回一个空数组。但是当我使用$get_where而不是%s(请参见下面的代码)时,它会返回数据库中的所有结果 // Th
%s
echo $get_where; // returns: edited = 1
$get_uncontacted_members = $wpdb->get_results(
$wpdb->prepare("SELECT * FROM yc_customers WHERE %s", $get_where)
);
此代码返回一个空数组。但是当我使用$get_where
而不是%s
(请参见下面的代码)时,它会返回数据库中的所有结果
// This works
echo $get_where; // returns: edited = 1
$get_uncontacted_members = $wpdb->get_results(
$wpdb->prepare("SELECT * FROM yc_customers WHERE edited = 1", $get_where)
);
为什么它不能与
%s
一起工作?WordPress虽然使用sprintf()语法,但实际上它的工作方式与准备好的语句类似。因此,只能传递要查询的列的值,而不能传递整个列和值
$get_uncontacted_members = $wpdb->get_results(
$wpdb->prepare("SELECT * FROM yc_customers WHERE IFNULL(edited,'') = %s", 1)
);
因为
%s
是用于和公司的,所以请使用?
(至少我认为这是正确的)和$wpdb->prepare(“选择*来自yc_客户,其中编辑=1”,$get_WHERE)
不会使用$get\u where
做任何事情,因为没有任何东西可以绑定它:它只是ignored@castis?
还返回一个空数组。@MarkBaker我知道。我只是想说,当我使用edited=1
而不是%s
时,我会得到结果。我没有故意删除$get_where
,因为它会导致错误。噢,哇,这意味着我现在有问题了。但是谢谢,很高兴知道!变量$get_的值为NULL或edited='',其中
可以编辑=1或编辑为NULL。。。你知道我怎样才能达到我的目标吗?我更新了我的代码,所以现在你的%s基本上都是空的,“”现在也一样了。因此,您可以将变量作为1或“伟大的答案”传入!非常感谢你!!