当我尝试使用$name_array
子句中的NOT IN
变量进行选择时,我得到一个数组到字符串转换警告。我已经尝试了大量不同的引用组合,但我得到语法错误或数组到字符串转换警告。任何人都可以看到我在这里做错了什么。感谢。
$db->query("SELECT contactname
FROM contacts
WHERE contactname
NOT IN (' . implode(",", $name_array) . ')
");
答案 0 :(得分:5)
在将每个名称列入列表之前,您需要在每个名称周围加上引号。
$names = implode(",", array_map(function($x) { return "'$x'"; }, $name_array));
$db->query("SELECT contactname
FROM contacts
WHERE contactname
NOT IN ($names)
");
答案 1 :(得分:3)
由于字符串,你必须在''中引用名称,所以请使用。
$val="'";
$val.=implode("','",$name_array);
$val.="'";
$db->query("SELECT contactname FROM contacts WHERE contactname NOT IN ($val) ");
这将极力帮助你
答案 2 :(得分:2)
尝试使用FIND_IN_SET()
$db->query("SELECT contactname
FROM contacts
WHERE NOT FIND_IN_SET(contactname, \'' . implode(",", $name_array) . '\')
");
答案 3 :(得分:1)
$db->query("SELECT contactname
FROM contacts
WHERE contactname
NOT IN ('".implode("','",$name_array).'\')');