$record_id1=$_REQUEST['record_id'];
echo $record_id1;
echo $dor1;
if(isset($_REQUEST['updatebtn']))
{
$status=$_REQUEST['up'];
$sql="UPDATE record SET dor='$dor1' WHERE record_id=$record_id1";
mysql_query($sql) or die(mysql_error());
}
我正在尝试更新我的record
表格,该表格会在其WHERE
子句中包含record_id1,只需更新dor=$dor
此处dor
已在页面中正确设置。问题是,当我尝试执行此页面时,我收到以下错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本以获得正确的语法...
我已经花了好几个小时而且当我使用... WHERE record_id=7(any numeric value)
表格得到更新时无法指出错误但是当我用$record_id1
更新它时我收到了上述错误。
Data Type
dor =String
record_id=int
答案 0 :(得分:1)
您的表格列名record_id1
的末尾是1还是record_id
。根据您的问题,您可以使用和数字值进行自定义查询,将其分配给record_id1
(末尾为1)。
如果您的列名称为1,则只需更新您的查询以匹配正确的名称。
答案 1 :(得分:0)
你应该逃避你的变量:
$sql = sprintf(
"UPDATE record SET dor='%s' WHERE record_id=%s",
mysql_real_escape_string($dor),
mysql_real_escape_string($record_id1)
);
并回显您的SQL以确保您正在运行的是您所期望的:
echo $sql;
数字值也可以在它们周围加上引号,所以这也会起作用:
$sql = sprintf(
"UPDATE record SET dor='%s' WHERE record_id='%s'",
mysql_real_escape_string($dor),
mysql_real_escape_string($record_id1)
);
现在,不推荐使用所有mysql_ *函数,因此您应该使用mysqli_ *等效函数。
答案 2 :(得分:0)
$sql="UPDATE record SET dor='$dor1' WHERE record_id=$record_id1";
问题是当我尝试执行此页面时,我得到以下内容 错误:
-
当我使用...表得到的记录_id1 = 7(任何数值) 更新
是在record_id(列名)正确之后的1
吗?是您的专栏record_id
还是record_id1
?如果它真的是record_id1
你的。需要使用:
... WHERE record_id1=$record_id1 ...
答案 3 :(得分:0)
有时,变量$record_id1
中有一个不需要的空格字符。
如果是,请使用trim()。
$record_id1=trim($_REQUEST['record_id']);
查询:
$sql="UPDATE `record` SET `dor`='$dor1' WHERE `record_id`='$record_id1'";
答案 4 :(得分:-1)
尝试将qoutes放在WHERE子句周围,如下所示:
$sql="UPDATE record SET dor='$dor1' WHERE record_id='$record_id1'";
还有一件事。请使用MySQLi或PDO而不是MySQL。 MySQL已被弃用。使用MySQLi或PDO可以让你做准备语句
答案 5 :(得分:-1)
$sql="UPDATE record SET dor = '$dor1' WHERE record_id = '$record_id1'";