我已经使用带有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
是共同的部分。