mysql gt 轉義符 mysql 轉義字元

2021-10-19 01:34:06 字數 1403 閱讀 8626

在使用者提交表單的時候,有的使用者會提交一些特殊字元,

比如單引號雙引號,此時,

如果直接按正常字串插入資料庫的話,

可能會出現無法正確插入資料庫

pdo::quote 轉義mysql語句中的單引號和雙引號

php為了安全性,所以引入了個magic_quotes_gpc = on的功能,可以不需要做任何處理就能直接把單引號插入資料庫中,那麼對於off時,則需要考慮單引號的問題了,而不是一味地信任執行環境。

當magic_quotes_gpc = on時,使用了addslashes()處理後的資料在資料庫中將以\『形式儲存,如果此時直接輸出的話,就會發現比自己期待的內容多了個\,因此stripslashes()出場了,它能把\去掉(區別於str_replace(」\」, 「」,$str))。

當magic_quotes_gpc = off時,使用了addslashes()處理後的資料在資料庫中將以『形式儲存,沒有上面說的有\的問題,addslashes()起到插入資料不出錯的作用,如果此時直接輸出的話,資料正常。不需要再用stripslashes()。

addslashes()和stripslashes()正好是相反的,直接記憶:addslashes()加個\,stripslashes()去個\

那麼什麼時候用呢?

簡單說:

當magic_quotes_gpc = on時,系統會自動處理單引號等問題,用不用addslashes()和stripslashes()都沒關係,但是如果新增資料時用了addslashes(),那麼顯示資料時必須要stripslashes()

當magic_quotes_gpc = off時,系統不會處理單引號等問題,所以插入資料時必須要使用addslashes(),顯示資料時則不需要使用stripslashes()。

既然有了分析,做程式時要怎麼辦呢?根據以上兩種情況,可得:

不管magic_quotes_gpc是on還是off,咱新增資料時都用addslashes(),當on時,必須使用stripslashes(),off時則不能用stripslashes()。

如何判斷on還是off呢?用get_magic_quotes_gpc()。

最後舉例:

複製**

**//提交資料,或者變數準備:

$content=addslashes(」這裡面是資料,不管有沒單引號或者還是變數」);

//插入資料到資料庫,**省略

//開始顯示資料

$content=」從資料庫讀取的資料」;

if(get_magic_quotes_gpc()){

$content=stripslashes($content);

echo $content;

mysql 轉義字元

標籤:區別   安全   安全性   off   replace   記憶   rip   使用   sla

mysql sql 轉義符 MySQL的轉義字元

mysql可以識別下列轉義字元 0乙個ascii 0 nul 字元。n乙個新行符。t乙個定位符。r乙個回車符。b乙個退格符。乙個單引號 符。乙個雙引號 符。乙個反斜線 符。乙個 符。它用於在正文中搜尋 的文字例項,否則這裡 將解釋為乙個萬用字元。乙個 符。它用於在正文中搜尋 的文字例項,否則這裡 將...

mysql 運算子轉義 mysql常用運算子

一 算數運算子 加法 減法 乘法 除法 返回餘數 二 比較運算子 等於 或 不等於 等於 這裡是安全的等於 例如 select null null 結果是1,如果是select null null 結果是null,有時候會報錯程式 between 存在於指定範圍 舉例 select 10 betwe...

mysql 轉義 MySql字元轉義

在字串中,某些序列具有特殊含義。這些序列均用反斜線 開始,即所謂的轉義字元。mysql識別下面的轉義序列 0ascii 0 nul 字元。單引號 雙引號 b退格符。n換行符。r回車符。ttab字元。zascii 26 控制 ctrl z 該字元可以編碼為 z 以允許你解決在windows中ascii...