SQL UPDATE查询中的错误
问题描述:
$result = mysql_query("UPDATE categories
SET cd_title='$docuTitle' , cd_link='$linkTitle'
WHERE c_name='$catID'");
此更新查询有什么问题?SQL UPDATE查询中的错误
答
我会查询改变这一点,以避免错误,如果输入包含撇号:
$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) . "'");
答
有可能出错的数据的变量—但我们不能看到它们包含的内容。
您应该使用参数化查询,它将处理数据中可能混淆语句的任何奇数字符。
见How can I prevent SQL injection in PHP?和When are the most recommended times to use mysql_real_escape_string()
答
如果您的数据消毒,来自各地的PHP变量删除单引号。
查询看起来很好。请更具体一些。 – Gumbo 2009-07-16 14:02:48