mysql 轉義字符問題


 

首先我們要知道,數據庫都是由表構成的,當你把數據插入到其中的一個表中的時候,比如是數字呀、文字呀等等的
插入的時候能正常插入,但是一旦你要插入特殊的字符,比如說插入下面這個括號里面的內容(“ABC”)到表里。如
果不帶引號的話ABC是能夠插入進去的,但加上雙引號以后,插入到表的時候,數據庫會認為這對雙引號是php語言里
面的特殊字符,那么這對雙引號就插入不進表格了,這時候只有通過轉義,讓數據庫把這對雙引號認為是和ABC三個字
符一樣。那就那能插入進去了。

 

將插入到mysql內的字符進行轉義的實質是:將php中的特殊字符如(‘’,“”,\, null)插入到數據庫。

PHP addcslashes() 函數
定義和用法
addcslashes() 函數在指定的字符前添加反斜杠。
語法
addcslashes(string,characters)參數 描述
string 必需。規定要檢查的字符串。
characters 可選。規定受 addcslashes() 影響的字符或字符范圍。
提示和注釋
注釋:在對 0,r,n 和 t 應用 addcslashes() 時要小心。在 PHP 中,\0,\r,\n 和 \t 是預定義的轉義序列。
實例
例子 1
在本例中,我們要向字符串中的特定字符添加反斜杠:
<?php
$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() 進行檢測。
例子
在本例中,我們要向字符串中的預定義字符添加反斜杠:
<?php
$str = "Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
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、可不轉義的: 
一個字符串用雙引號“  "”來引用的,該字符串中的單引號“'”不需要特殊對待而且不必被重復或轉義。同理,一個字符串用單引號“'”來引用的,該字符串中的雙引號“  "”不需要特殊對待而且不必被重復或轉義。   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM