說明string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
本函數將 中的特殊字符轉義,並計及連接的當前字符集,因此可以安全用於 mysql_query()。
Note: mysql_real_escape_string() 並不轉義 和 。
Example #1 mysql_real_escape_string() 例子
代碼如下 復制代碼 <?php以上例子將產生如下輸出:
Escaped string: Zak’s and Derick’s Laptop
參見
mysql_escape_string() 和 mysql_character_set_name()。
網站分享的關於 addslashes與mysql_real_escape_string的區別
代碼如下 復制代碼 if (!get_magic_quotes_gpc()) {
最好對magic_quotes_gpc已經開放的情況下,還是對$_POST[’lastname’]進行檢查一下。
再說下mysql_real_escape_string和mysql_escape_string這2個函數的區別:
mysql_real_escape_string 必須在(PHP 4 >= 4.3.0, PHP 5)的情況下才能使用。否則只能用 mysql_escape_string ,兩者的區別是:
mysql_real_escape_string 考慮到連接的當前字符集,而mysql_escape_string 不考慮
手冊上addslashes轉義的字符是單引號(')、雙引號(")、反斜線()與NUL(NULL 字符)。
mysql_real_escape_string轉義的字符並沒有被提到.只是說了一句
注意: mysql_real_escape_string() 並不轉義% 和_。
為什麼PHP手冊沒有說呢?因為其實這是個MySql的C的API.所以我們需要查下MySql手冊..上面是這麼說的.
編碼的字符為NUL (ASCII 0)、'n'、'r'、''、'''、'"'、以及Control-Z(請參見9.1節,“文字值”)。(嚴格地講,MySQL僅需要反斜槓和引號字符,用於引用轉義查詢中的字符串。該函數能引用其他字符,從而使得它們在日志文件中具有更好的可讀性)。
總結:
* addslashes() 是強行加;
* mysql_real_escape_string() 會判斷字符集,但是對PHP版本有要求;
* mysql_escape_string不考慮連接的當前字符集。