[英]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.