我有一个数组while
,其值由$sql="SELECT * FROM comment WHERE uname IN ($f_array) ORDER BY ID DESC";
循环和SQL查询加载。
我想在SQL查询中使用此数组名称。
array(4) {
[0]=> string(8) "wisahmed"
[1]=> string(10) "test_user1"
[2]=> string(10) "test_user2"
[3]=> string(10) "test_user3"
}
这是我的数组在加载数据后的样子,
AVCaptureMovieFileOutput
有人能告诉我如何将这个数组加载到上面的MySQL查询中。
答案 0 :(得分:3)
您需要构建带引号的逗号分隔列表。这可以通过内爆的数组源轻松完成:
$imploded = implode("','", $f_array)
这将呈现:
wisahmed','test_user1','test_user2','test_user3
因此,将其包装在单引号中并将其放入现有查询中会产生正确的格式:
$sql="SELECT * FROM comment WHERE uname IN ('{$imploded}') ORDER BY ID DESC";
成为:
SELECT * FROM comment WHERE uname IN ('wisahmed','test_user1','test_user2','test_user3') ORDER BY ID DESC
答案 1 :(得分:1)
$array = ["wisahmed", "test_user1", "test_user2", "test_user3"];
$users = implode(",", $array);
更新您的查询
$sql="SELECT * FROM comment WHERE uname IN($users) ORDER BY ID DESC";
答案 2 :(得分:0)
你不能直接使用数组,你必须先将其转换为字符串,所以请尝试以下方法:
$users = "'".implode("','",$f_array)."'";
然后查询应该是
$sql="SELECT * FROM comment WHERE uname IN ($users) ORDER BY ID DESC";