转义 PHP 中的单引号以进行 MySQL 插入
从 PHP 向 MySQL 数据库插入数据时,单引号等特殊字符可能会导致错误。为了防止这种情况,在将这些字符插入查询之前对其进行转义至关重要。
出现问题中描述的问题是因为数据的收集和插入方式不同,具体取决于来源。查询 1 直接从提交的表单中收集数据,这可能会引入未转义的单引号。然而,在查询 2 中,数据首先从数据库中提取,如果启用了 magic_quotes_gpc,单引号可能已经被转义。
解决方案是使用 mysql_real_escape_string() 在两个查询中一致地转义单引号。此函数转义特殊字符并确保正确处理单引号,即使它们出现在数据中也是如此。
示例:
<code class="php">$escaped_name = mysql_real_escape_string($name); $query = mysql_query("INSERT INTO message_log (order_id, timestamp, message_type, email_from, supplier_id, primary_contact, secondary_contact, subject, message_content, status) VALUES ('$order_id', '" . date('Y-m-d H:i:s', time()) . "', '$email', '$from', '$row->supplier_id', '$row->primary_email' ,' $row->secondary_email', '$subject', '$escaped_name', '1')");</code>
在将数据插入 MySQL 之前,在 PHP 中一致地转义单引号,您可以防止潜在的错误并确保准确的数据处理。
以上是如何在 PHP 中正确转义 MySQL 插入的单引号?的详细内容。更多信息请关注PHP中文网其他相关文章!