php中用sql where语句出错,使用WHERE id IN ($a['ids'])则会报错:Unknown column 'ID' in 'where clause'

$str是由表单<form>中的多个check传过来的:$a=array();$a['ids'] = implode(',',$_POST['ids']);用print_r打印$str为:Array ( [ids] => ID-1002,ID-1000 ) ,
mysql_query("UPDATE input_table SET is = 1 WHERE id IN ($a['ids'])");
报错信息:Unknown column 'ID' in 'where clause'
希望高手给以帮助谢谢,如果解决分还可以加,另外如果对问题不清楚,还可以hi我,

Unknown column 'ID' in 'where clause
这句话的大概意思是,未知的列'ID',在where 子句里。

从 [ids] => ID-1002,ID-1000 这里可以看出,应该是数据库将 ID-1002 当成计算公式,所以会出现 “未知的列'ID'” 错误提示,其原因在于:

ID-1002 没有使用 双引号或单引号 包括起来,表示这是个字符串值,而不是一个表达式。

解决办法:

将 $a['ids'] = implode(',',$_POST['ids']); 这一句修改为:

$a['ids'] = sprintf('"%s"',implode('", "',$_POST['ids']));
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-05
$b=$_POST['ids'];
foreach ($b as $key => $value) $b[$key] = '"'.$value.'"';
$a = implode(',',$b);
$sql = 'UPDATE input_table SET is = 1 WHERE id IN ('.$a.')';
mysql_query ($sql);

这个应该能解决你的问题本回答被提问者采纳
相似回答