Foreach循环中的wpdb只返回第一个结果-发现了其他两个类似的情况

时间:2012-10-27 作者:lancerq

@Milo问题已解决,在数组$arrname中找到了空格。

我试图使用post\\u name获取post id。首先,我将所有post\\u名称存储在一个数组中,然后在该数组中循环使用wpdb查询中的key变量来获取post id,虽然很奇怪,但它只返回第一个post id。

如您所见,我尝试输出数组,它工作正常,输出该数组中的每个键值,但wpdb查询只返回第一个结果(尝试切换数组中键值的顺序,确认它只输出第一个结果)。

有什么想法吗?

global $wpdb;
$rawname=$_POST[\'image_post_name\'];
$arrname=explode(",", $rawname);
foreach ($arrname as &$value) {
$mypostid = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_name=\'$value\'"));
echo $mypostid;
echo $value;}
试图添加退出(var\\u dump($wpdb->last\\u query));,发现只执行了第一个查询。

string(49)“从wp\\u posts中选择ID,其中post\\u name=\'unamed3\'”最后一次查询,“string(49)”?

2 个回复
SO网友:Andy Macaulay-Brook

OP找到了解决方案:

问题已解决,在数组$arrname中找到了空格。

我发布了一个简短的回复来整理我们的网站。如果有人想投票解决这个问题,那就太好了:-)

或者,表达你对问题质量的看法。

SO网友:krembo99

我认为您的问题是数据验证-您应该始终使用sanitation functions 在处理数据库时。试着看看是否有帮助。。

结束

相关推荐

$wpdb未在Function中定义:致命错误:调用非对象上的成员函数Query()

由于某些原因,$wpdb对象没有在一个特定函数中定义。我在文件中还有四个使用$wpdb的其他函数,除此之外,所有函数都工作正常,只有一个简单的删除函数出现错误:Call to a member function query() on a non-object... 以下是相关功能:function delete_gallery( $gallery_id ) { global $wpdb; $sql = \"DELETE from galleries WHERE g