Php MySQL语法错误
我有一个非常简单的mysql查询,它通常在我的其他站点上运行良好,但这次我遇到以下错误: 致命错误:您的数据库中有一个错误 SQL语法;检查手册 对应于您的MySQL服务器 要使用的正确语法的版本 在第1行插入的“其中id=1”附近 进入成员(计划、活动)值('3 天数计划','Y'),其中id=1 代码是:Php MySQL语法错误,php,mysql,Php,Mysql,我有一个非常简单的mysql查询,它通常在我的其他站点上运行良好,但这次我遇到以下错误: 致命错误:您的数据库中有一个错误 SQL语法;检查手册 对应于您的MySQL服务器 要使用的正确语法的版本 在第1行插入的“其中id=1”附近 进入成员(计划、活动)值('3 天数计划','Y'),其中id=1 代码是: $db->query("INSERT INTO members (plan, active) VALUES ('$plan','$active') where id = $custo
$db->query("INSERT INTO members (plan, active) VALUES ('$plan','$active') where id = $custom");
我正在使用mysql rainphp类
我相信有一个简单的解决方案,但我是一个新手,就是想不出来:)
编辑:
大家好
谢谢你的回答!我现在觉得自己是个傻瓜,因为我不知道WHERE子句只用于更新。但这是有道理的
再次感谢你的帮助 如果要插入,请使用:
$db->query("INSERT INTO members (plan, active)
VALUES ('".mysql_real_escape_string($plan)."',
'".mysql_real_escape_string($active)."')");
WHERE
子句在这里是无用的
编辑:是否要执行插入
或更新
如果更新:
$db->query("UPDATE members SET
plan = '".mysql_real_escape_string($plan)."',
active = '".mysql_real_escape_string($active)."'
WHERE id=".intval($id));
不能同时插入和使用WHERE。这只适用于更新。您不需要在insert语句中提供where子句。您不应该在insert查询中使用where子句
删除where
子句,使您的代码如下所示:
$db->query("INSERT INTO members (plan, active) VALUES ('$plan','$active')");
不知道你为什么把这个where
子句放在那里;但是,如果您想修改某些数据,则需要使用更新
查询——而不是插入
查询
例如:
update members
set plan = '$plan',
active = '$active'
where id = $custom
作为旁注:您需要确保转义数据——使用类提供的函数/方法(例如,如果使用PDO)。在insert
语句上不能有where
子句-您想做什么?Hi Pascal,我正在使用一个小函数(函数安全($value){htmlentities($value,ENT_引号,'utf-8');返回$value;})确保在传递到mysql之前检查所有条目。这应该可以做到,对吗?否:htmlentities为HTML输出转义数据;不是为SQL输出转义数据;;我应该添加htmlentities返回修改后的字符串,在这里,您没有使用其返回值——因此,基本上,您的函数什么都不做。哦,好的。感谢您提供的信息。我会的更改它,并确保使用mysql\u real\u escape\u字符串转义所有数据。我希望这样做。mysql\u real\u escape\u字符串可以正常工作——如果您已经使用mysql函数与数据库通信。