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我,
展开
 我来答
windblast
2012-05-05 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13620
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
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']));
fakedec001
2012-05-05 · 超过33用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:90.9万
展开全部
$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);

这个应该能解决你的问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式