php向mysql資料庫插入資料進行轉義包括兩方面的操作,第一方面需要在新增資料時通過資料轉義將資料寫入庫中,第二方面在將資料顯示在頁面時需要再次將資料恢復為原始狀態,即反轉義。
一、資料轉義
1 mysql_escape_string($content)
二、反轉義
1 stripslashes($content)
以上兩行**即可實現php向mysql資料庫插入資料轉義操作。
get_magic_quotes_gpc()
在php中get_magic_quotes_gpc()函式是內建的函式,這個函式的作用就是得到php.ini設定中magic_quotes_gpc選項的值。
那麼就先說一下magic_quotes_gpc選項:
如果magic_quotes_gpc=on,php解析器就會自動為post、get、cookie過來的資料增加轉義字元「\」,以確保這些資料不會引起程式,特別是資料庫語句因為特殊字元引起的汙染而出現致命的錯誤。
在magic_quotes_gpc=on的情況下,如果輸入的資料有
單引號(』)、雙引號(」)、反斜線(\)與 nul(null 字元)等字元都會被加上反斜線。這些轉義是必須的,如果這個選項為off,那麼我們就必須呼叫addslashes這個函式來為字串增加轉義。
正是因為這個選項必須為on,但是又讓使用者進行配置的矛盾,在php6中刪除了這個選項,一切的程式設計都需要在 magic_quotes_gpc=off下進行了。在這樣的環境下如果不對使用者的資料進行轉義,後果不僅僅是程式錯誤而已了。同樣的會引起資料庫被注入攻擊的危險。所以從現在開始大家都不要再依賴這個設定為on了,以免有一天你的伺服器需要更新到php6而導致你的程式不能正常工作。
當magic_quotes_gpc=on的時候,函式get_magic_quotes_gpc()就會返回1
當magic_quotes_gpc=off的時候,函式get_magic_quotes_gpc()就會返回0
因此可以看出這個get_magic_quotes_gpc()函式的作用就是得到環境變數magic_quotes_gpc的值。既然在php6中刪除了magic_quotes_gpc這個選項,那麼在php6中這個函式我想也已經不復存在了。
addslashes()
addslashes() 函式在指定的預定義字元前新增反斜槓。
這些預定義字元是:
* 單引號 (')
* 雙引號 (")
* 反斜槓 (\)
* null
語法addslashes(string)
stripslashes()
去掉反斜線字元。
語法: string stripslashes(string str);
返回值: 字串
函式種類: 資料處理
本函式可去掉字串中的反斜線字元。若是連續二個反斜線,則去掉乙個,留下乙個。若只有乙個反斜線,就直接去掉。
如果不知道有沒有設定可以這樣做:
1 function stringfilter($str)else8 }else11 }
MySQL中反斜槓轉義應用
問題描述 mysql中帶有反斜槓的內容入庫後,發現反斜槓無故失蹤了 俗話說被吃掉了 例 插入insert into tb url values absc eeee 結果資料庫裡的內容是 absceeee 反斜槓沒了呢 這麼詳細了相信大家都搞清楚問題了吧,下面看解決方案 insert into tb ...
筆記 json去除正斜槓轉義
json doesn t require you to do that,it allows you to do that.it also allows you to use u0061 for a but it s not required.allowing helps when embedding...
QSettings 與中文(反斜槓 轉義)
本文介紹的是qsettings的 iniformat 截止目前 qt4.7 對中文的支援情況,如果你想實現自己定義格式 比如 中文 中文 中文 這樣 可參看qsettings 自定義格式qt4.4 包含 之前 先看個例子 結果如下 setcion key x6211 x662f x6c49 x5b5...