我正在尝试从下表中获取用户名列表,然后使用该列表获取每个用户的新闻提要帖子,但是当我尝试这样做时:
$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
我该如何解决?
答案 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);