当我试图使用$name_array
子句中的NOT IN
变量进行选择时,会收到一个从数组到字符串的转换警告。我尝试过不同的引号组合,但我要么得到语法错误,要么得到一个数组到字符串的转换警告。有人知道我在这里做错了什么吗。谢谢。
$db->query("SELECT contactname
FROM contacts
WHERE contactname
NOT IN (' . implode(",", $name_array) . ')
");
最佳答案
你需要在每个名字周围加上引号,然后将它们内化为一个列表。
$names = implode(",", array_map(function($x) { return "'$x'"; }, $name_array));
$db->query("SELECT contactname
FROM contacts
WHERE contactname
NOT IN ($names)
");