Mysql IN子句不返回

时间:2017-11-10 22:06:53

标签: php mysql prepared-statement rows

我已经使用带有IN()子句的mysql查询,但现在我遇到了问题。所以,我有一个用户数据库,我想搜索那些在$namesarr数组中的人。不幸的是它不起作用。我检查了很多次,搜索错误但没有。它不会返回任何行(num_rows = 0)。

代码:

// Get names
$incommnames = "";
$namesarr_ = join("','", $incomm); // join each item with a comma
$namesarr = str_replace("'", "", $namesarr_); // remove any single quotes
$sql = "SELECT username FROM users WHERE username IN (?)"; // but query does not work
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$namesarr);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
    $uname = $row["username"];
    $incommnames .= '<a href="user.php?u='.$uname.'">'.$uname.'</a>';
}

$stmt->close();

但是,如果我回显$namesarr_我得到一个像username1,username2 ...这样的字符串,那么它会正常工作,但事实并非如此。如果我只有一行受影响,我没有问题。那么,出了什么问题?

修改

$incomm = array_intersect($myf, $theirf);

$myf是我的朋友数组,$theirf是他们的朋友数组。 $incomm是共同的部分。

0 个答案:

没有答案