簡體   English   中英

MySQL使用mysqli_real_escape_string轉義單引號

[英]MySQL Escaping Single Quotes With mysqli_real_escape_string

當我使用mysqli_real_escape_string插入數據庫時​​,我發現單引號使用\\\\而不是\\進行轉義,這導致查詢失敗。 見下文:

注意: $ link是我的數據庫連接變量。

$string = mysqli_real_escape_string($link, "BEGIN testing quotes - don't use quotes END");
$query = "INSERT INTO table (field) VALUES ('".$string."')";

當我回顯查詢時,我得到:

INSERT INTO table (field) VALUES ('BEGIN testing quotes - don\\\\'t use quotes END')

這會導致SQL語法錯誤。 我似乎找不到任何可以更改此設置的設置。 如果我將回顯查詢復制到MySQL工作台並刪除\\ ,則查詢插入是完美的。

我瀏覽了Stack Overflow,但找不到任何與此相關的內容,也沒有運氣通過Google搜索。

我有很多查詢需要在我的整個網站上進行轉義。 是否可以將設置設置為自動插入預插入的字符串轉義,而不必遍歷和更新我的所有變量? 如果不是,是否仍然可以更改mysqli_real_escape_string函數而不必手動檢查插入的每個字符串是否包含單引號等?

感謝您的協助。

正如克里希納·古普塔(Krishna Gupta)所建議的那樣,脫衣舞解決了我的問題:

$string = mysqli_real_escape_string($link, stripslashes("BEGIN testing quotes - don't use quotes END"));

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM