首页  >  文章  >  后端开发  >  如何在 PHP 中转义单引号以进行 MySQL 插入?

如何在 PHP 中转义单引号以进行 MySQL 插入?

DDD
DDD原创
2024-11-02 00:49:30898浏览

How to Escape Single Quotes in PHP for MySQL Insertion?

在 PHP 中转义单引号以进行 MySQL 插入

将包含单引号 (') 的数据插入数据库时​​,可能会出现 MySQL 错误。要解决此问题,使用适当的技术转义单引号至关重要。

在代码片段中,您使用两个 INSERT 查询将表单数据添加到数据库:

<code class="php">INSERT INTO job_log ...
VALUES
(...)</code>
<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>

查询 1:

第一个查询可以正常工作,无需转义单引号,因为您可能使用 magic_quotes_gpc,它会转义 GET、POST 和 COOKIE 变量中的字符串。

查询 2:

当字符串包含单引号(例如“O'Brien”)时,第二个查询会失败。与第一个查询不同,第二个查询中的字符串没有被转义。

为了防止此问题,您应该在将字符串插入数据库之前使用 mysql_real_escape_string() 对字符串进行转义。这将在单引号前添加反斜杠 ():

<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>

例如:

<code class="php">$escapedString = mysql_real_escape_string("O'Brien");
$query = mysql_query("INSERT INTO message_log ... VALUES ('$escapedString', ...");</code>

转义字符串:

这是一个很好的做法即使您没有遇到错误,也始终在将字符串插入数据库之前对其进行转义。这可以防止 SQL 注入攻击并确保数据完整性。在PHP中,您可以使用mysql_real_escape_string()或PDO库的bindParam()方法来有效地转义字符串。

以上是如何在 PHP 中转义单引号以进行 MySQL 插入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn