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

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

Patricia Arquette
發布: 2024-11-03 11:55:29
原創
836 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板