PDO查询返回“Array”而不是value

时间:2014-03-11 01:38:47

标签: php pdo

我正在尝试从下表中获取用户名列表,然后使用该列表获取每个用户的新闻提要帖子,但是当我尝试这样做时:

    $sth = $db->query("SELECT profile FROM follows WHERE follower='$username' ");
    $following = $sth->fetchAll(PDO::FETCH_ASSOC);

    foreach ($following as $userlist) {
        $userlist_logic .= "username='$userlist' OR ";
    }

echo $userlist_logic;

然后它只返回:

  

username ='Array'OR username ='Array'OR username ='Array'OR

我该如何解决?

2 个答案:

答案 0 :(得分:2)

$userlist是一个数组实例,包含返回的每一行的profile列。

foreach循环中的行需要如下:

$userlist_logic .= "username='{$userlist['profile']}' OR ";

另外,我建议在将变量插入到字符串中之前通过在PDO中生成第二个SQL语句然后通过PDO运行它来清理变量,如this StackOverflow thread中所述。

答案 1 :(得分:0)

在循环中执行:

foreach ($following as $userlist) {
   $userlist_logic[] = "username='{$userlist['profile']}'";
}

然后只是内爆你创建的数组来创建一个与OR一起加入的列表:

$userlist_logic = implode(' OR ', $userlist_logic);