SQL UPDATE 查询中的错误
Posted
技术标签:
【中文标题】SQL UPDATE 查询中的错误【英文标题】:Error in SQL UPDATE query 【发布时间】:2009-07-16 14:01:02 【问题描述】:$result = mysql_query("UPDATE categories
SET cd_title='$docuTitle' , cd_link='$linkTitle'
WHERE c_name='$catID'");
这个更新查询有什么问题?
【问题讨论】:
查询看起来不错。请更具体。 给出的错误是什么? mysql_error() 应该输出它。 您的变量是否正确转义? 【参考方案1】:您的变量中的数据可能有问题 - 但我们看不到它们包含的内容。
您应该使用参数化查询,这将处理数据中可能会弄乱语句的任何奇怪字符。
见How can I prevent SQL injection in php?和When are the most recommended times to use mysql_real_escape_string()
【讨论】:
【参考方案2】:如果输入包含撇号,我会将查询更改为这样,以避免错误:
$result = mysql_query(
"UPDATE categories SET
cd_title='" . mysql_real_escape_string($docuTitle) . "',
cd_link='" . mysql_real_escape_string($linkTitle) . "'
WHERE
c_name='" . mysql_real_escape_string($catID) . "'");
【讨论】:
【参考方案3】:如果您的数据已清理,请删除 php 变量周围的单引号。
【讨论】:
以上是关于SQL UPDATE 查询中的错误的主要内容,如果未能解决你的问题,请参考以下文章
来自 UPDATE 查询的“SQL 命令未正确结束”错误 [重复]
访问不允许SQL-Server列中的空值的INSERT或UPDATE(访问运行时错误3162)