首頁  >  文章  >  後端開發  >  為什麼在 PHP 中轉義單引號有時只會影響 MySQL 插入?

為什麼在 PHP 中轉義單引號有時只會影響 MySQL 插入?

Patricia Arquette
Patricia Arquette原創
2024-11-03 11:55:29744瀏覽

Why Does Escaping Single Quotes in PHP Only Affect MySQL Inserts Sometimes?

在PHP 中向MySQL 插入資料時轉義單引號

本文解決了在MySQL 中向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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn