在 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中文网其他相关文章!