首頁 > 資料庫 > mysql教程 > 如何使用 PHP 安全地將單引號插入 MySQL 資料庫?

如何使用 PHP 安全地將單引號插入 MySQL 資料庫?

Patricia Arquette
發布: 2024-12-01 16:30:15
原創
640 人瀏覽過

How to Safely Insert Single Quotes into MySQL Databases Using PHP?

在PHP 中轉義單引號以進行MySQL 插入

使用PHP 將資料插入MySQL 資料庫時,轉義任何單引號重要(') 位於資料中以防止意外行為。在 MySQL 語句中使用單引號並在第二次插入嘗試中遇到錯誤時,會出現一個常見問題。

查詢1

第一個查詢,它從表單寫入job_log 表中,可以正常工作,因為booking_name 欄位中的單引號未明確轉義。但是,這不是推薦的做法。

$result = mysql_query("INSERT INTO job_log
(order_id, ...)
VALUES
('$order_id', '$supplier_id', ..., '$booking_name', '$address', ...)");
登入後複製

查詢2

第二個查詢(將資料庫中的資料插入message_log 表中)在下列情況下失敗: Primary_contact 欄位包含單引號。這是因為 row->primary_email 字串中的單引號會觸發 MySQL 語法錯誤。

$query = mysql_query("INSERT INTO message_log
(order_id, ...)
VALUES
('$order_id', '".date('Y-m-d H:i:s', time())."', '$email', '$from', ..., '$row->primary_email' ,..., '$message_content', '1')");
登入後複製

使用mysql_real_escape_string 的轉義解決方案

要解決此問題,正確轉義插入資料庫的字串值中的任何單引號至關重要。這可以使用 mysql_real_escape_string() 函數來實現,該函數會對字串進行轉義以符合 MySQL 語法。

$esc_primary_email = mysql_real_escape_string($row->primary_email);

$query = mysql_query("INSERT INTO message_log
(order_id, ...)
VALUES
('$order_id', '".date('Y-m-d H:i:s', time())."', '$email', '$from', ..., '$esc_primary_email' ,..., '$message_content', '1')");
登入後複製

透過使用 mysql_real_escape_string() 轉義單引號,查詢將成功執行而不會遇到錯誤,從而確保將資料正確插入資料庫。

以上是如何使用 PHP 安全地將單引號插入 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板