我有一个非常简单的mysql查询,通常在我的其他网站上运行良好,但这次我收到以下错误:
致命错误:您的错误 SQL语法;检查手册 对应于您的MySQL服务器 用于正确语法的版本 在第1行INSERT附近'where id = 1'附近 INTO成员(计划,活跃)价值观('3 天计划','Y'),其中id = 1
代码是:
$db->query("INSERT INTO members (plan, active) VALUES ('$plan','$active') where id = $custom");
我正在使用mysql rainphp类。
我确信有一个简单的解决方案,但我是一个新手,只是无法弄明白:)
修改
大家好,
感谢您的回答!我现在觉得自己像个白痴,因为我不知道WHERE子句只适用于UPDATE。但这是有道理的!
再次感谢您的帮助!
答案 0 :(得分:4)
您无法同时插入和使用WHERE。这仅适用于UPDATE。
答案 1 :(得分:3)
如果您想要INSERT
,请使用:
$db->query("INSERT INTO members (plan, active)
VALUES ('".mysql_real_escape_string($plan)."',
'".mysql_real_escape_string($active)."')");
WHERE
子句在这里没用。
编辑:您想要INSERT
还是UPDATE
?
如果UPDATE
:
$db->query("UPDATE members SET
plan = '".mysql_real_escape_string($plan)."',
active = '".mysql_real_escape_string($active)."'
WHERE id=".intval($id));
答案 2 :(得分:1)
您不应在插入查询中使用where
子句。
删除where
子句,因此您的代码如下所示:
$db->query("INSERT INTO members (plan, active) VALUES ('$plan','$active')");
不知道你为什么把这个where
条款放在那里;但是,如果您想修改某些数据,则需要使用update
查询 - 而不是insert
个。
例如:
update members
set plan = '$plan',
active = '$active'
where id = $custom
作为旁注:您需要确保使用您的类(PDO::quote
提供的功能/方法,例如,如果使用PDO)来逃避您的数据。
答案 3 :(得分:0)
您不需要在insert语句中提供where子句。