在 PHP 中向 MySQL 插入数据时转义单引号
本文解决了在 PHP 中向 MySQL 插入数据时转义单引号的问题。
提供的代码演示了两个 SQL 语句:一个用于将表单数据插入数据库,另一个用于检索数据、发送电子邮件和记录事务详细信息。当第二个语句中存在单引号但第一个语句中不存在单引号时,会发生错误。
行为差异源于可能启用 magic_quotes_gpc。此功能对 $_GET、$_POST 和 $_COOKIES 中的字符串进行转义。当再次存储和检索数据时,它可能不会自动转义。
要解决此问题,您应该使用 mysql_real_escape_string() 对两个片段中的每个字符串进行转义。
示例with mysql_real_escape_string():
<code class="php">$order_id = mysql_real_escape_string($order_id); $supplier_id = mysql_real_escape_string($supplier_id); ...</code>
在插入 MySQL 之前转义字符串可确保单引号和其他可能有问题的字符得到正确处理,防止 SQL 注入漏洞和不一致的查询执行。
以上是为什么在 PHP 中转义单引号有时只影响 MySQL 插入?的详细内容。更多信息请关注PHP中文网其他相关文章!