【发布时间】:2011-04-26 12:26:21
【问题描述】:
我想将 HTML 代码存储在 SQL 数据库中。它可以很好地存储所有内容,除非定义了诸如border="0"之类的属性。 我认为单引号不是问题。我该如何避免这种情况发生。
错误:错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '0"> 附近使用的正确语法
【问题讨论】:
我想将 HTML 代码存储在 SQL 数据库中。它可以很好地存储所有内容,除非定义了诸如border="0"之类的属性。 我认为单引号不是问题。我该如何避免这种情况发生。
错误:错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '0"> 附近使用的正确语法
【问题讨论】:
您是否在尝试将 HTML 插入数据库之前对其进行转义?假设您的 HTML 存储在变量 $html
中$html = mysql_real_escape_string($html);
$sql = "INSERT INTO html_docs (html) VALUES('$html')";
mysql_query($sql);
【讨论】:
您需要转义您的字符串,看起来mysql_real_escape_string 将在 PHP 中完成这项工作。
【讨论】:
通常的建议是不要连接参数和代码来构建 SQL;使用静态 SQL 并将数据作为参数传递。所有体面的 SQL API 都有参数绑定机制。
但是,AFAICT,PHP 数据库 API 中没有这种机制。相反,您似乎应该在将字符串注入 SQL 语句之前使用 mysql_real_escape_string 转义字符串。请有人告诉我,我错了,PHP 的作者没那么傻。
【讨论】: