将插入到mysql内的字元進行轉義的實質是:将php中的特殊字元如(‘’,“”,\, null)插入到資料庫。
PHP addcslashes() 函數定義和用法addcslashes() 函數在指定的字元前添加反斜杠。
文法addcslashes(string,characters)參數 描述
string 必需。規定要檢查的字元串。
characters 可選。規定受 addcslashes() 影響的字元或字元範圍。
提示和注釋
注釋:在對 0,r,n 和 t 應用 addcslashes() 時要小心。在 PHP 中,\0,\r,\n 和 \t 是預定義的轉義序列。執行個體
例子 1在本例中,我們要向字元串中的特定字元添加反斜杠:
$str = "Hello, my name is John Adams.";
echo $str;
echo addcslashes($str,‘m‘);
echo addcslashes($str,‘J‘);
?>
輸出:Hello, my name is John Adams.
Hello, \my na\me is John Ada\ms.
Hello, my name is \John Adams.
而函數addslashes()的使用:PHP addslashes() 函數
定義和用法addslashes() 函數在指定的預定義字元前添加反斜杠。
這些預定義字元是:
?單引号 (‘)
?雙引号 (")
?反斜杠 (\)
?NULL文法addslashes(string)參數 描述
string 必需。規定要檢查的字元串。
提示和注釋提示:該函數可用于為存儲在資料庫中的字元串以及資料庫查詢語句準備合适的字元串。
注釋:預設情況下,PHP
指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE 資料自動運作
addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字元串使用
addslashes(),因為這樣會導緻雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。例子在本例中,我們要向字元串中的預定義字元添加反斜杠:
$str = "Who‘s John Adams?";
echo $str . " This is not safe in a database query.
";
echo addslashes($str) . " This is safe in a database query.";
?>
輸出:Who‘s John Adams? This is not safe in a database query.
Who\‘s John Adams? This is safe in a database query.他們都有對應的去除他們添加的反斜杠的方法,分别是:stripcslashes()和stripslashes()。
MySQL的轉義字元“\”
MySQL識别下列轉義字元:
\0
一個ASCII 0 (NUL)字元。
\n
一個新行符。
\t
一個定位符。
\r
一個回車符。
\b
一個倒退符。
\‘
一個單引号(“‘”)符。
\ "
一個雙引号(“ "”)符。
\\
一個反斜線(“\”)符。
\%
一個“%”符。它用于在正文中搜尋“%”的文字執行個體,否則這裡“%”将解釋為一個通配符。
\_ 一個“_”符。它用于在正文中搜尋“_”的文字執行個體,否則這裡“_”将解釋為一個通配符。
注意,如果你在某些正文環境中使用“\%”或“\%_”,這些将傳回字元串“\%”和“\_”而不是“%”和“_”。
★★
有幾種方法在一個字元串内包括引号:
1、必須轉義的:
一個字元串用單引号“‘”來引用的,該字元串中的單引号“‘”字元可以用“‘‘”方式轉義。
一個字元串用雙引号“ "”來引用的,該字元串中的“ "”字元可以用“ " "”方式轉義。
同時你也可以繼續使用一個轉義字元“\”來轉義
2、可不轉義的:
一個字元串用雙引号“ "”來引用的,該字元串中的單引号“‘”不需要特殊對待而且不必被重複或轉義。同理,一個字元串用單引号“‘”來引用的,該字元串中的雙引号“ "”不需要特殊對待而且不必被重複或轉義。
mysql 轉義字元問題
标簽:sci cookie 例子 string 使用 base pcs 特殊 null
本條技術文章來源于網際網路,如果無意侵犯您的權益請點選此處回報版權投訴
本文系統來源:http://www.cnblogs.com/hehexu/p/7821209.html