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是由表单<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我, 展开
mysql_query("UPDATE input_table SET is = 1 WHERE id IN ($a['ids'])");
报错信息:Unknown column 'ID' in 'where clause'
希望高手给以帮助谢谢,如果解决分还可以加,另外如果对问题不清楚,还可以hi我, 展开
2个回答
2012-05-05 · 知道合伙人软件行家
关注
展开全部
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']));
这句话的大概意思是,未知的列'ID',在where 子句里。
从 [ids] => ID-1002,ID-1000 这里可以看出,应该是数据库将 ID-1002 当成计算公式,所以会出现 “未知的列'ID'” 错误提示,其原因在于:
ID-1002 没有使用 双引号或单引号 包括起来,表示这是个字符串值,而不是一个表达式。
解决办法:
将 $a['ids'] = implode(',',$_POST['ids']); 这一句修改为:
$a['ids'] = sprintf('"%s"',implode('", "',$_POST['ids']));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |