程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> MySql字符轉義

MySql字符轉義

編輯:MYSQL入門知識
 

在字符串中,某些序列具有特殊含義。這些序列均用反斜線(‘\’)開始,即所謂的轉義字符。MySQL識別下面的轉義序列:

\0 ASCII 0(NUL)字符。 \’ 單引號(‘’’)。 \” 雙引號(‘”’)。 \b 退格符。 \n 換行符。 \r 回車符。 \t tab字符。 \Z ASCII 26(控制(Ctrl)-Z)。該字符可以編碼為‘\Z’,以允許你解決在Windows中ASCII 26代表文件結尾這一問題。(如果你試圖使用mysql db_name < file_name,ASCII 26會帶來問題)。 \\ 反斜線(‘\’)字符。 \% ‘%’字符。參見表後面的注解。 \_ ‘_’字符。參見表後面的注解。

這些序列對大小寫敏感。例如,‘\b’解釋為退格,但‘\B’解釋為‘B’。

‘\%’和‘\_’序列用於搜索可能會解釋為通配符的模式匹配環境中的‘%’和‘_’文字實例。參見12.3.1節,“字符串比較函數”。請注意如果你在其它環境中使用‘\%’或‘\_’,它們返回字符串‘\%’和‘\_’,而不是‘%’和‘_’。

在其它轉義序列中,反斜線被忽略。也就是說,轉義字符解釋為仿佛沒有轉義。

有幾種方式可以在字符串中包括引號:

·         在字符串內用‘’’引用的‘’’可以寫成‘”’。

·         在字符串內用‘”’引用的‘”’可以寫成‘””’。

·         可以在引號前加轉義字符(‘\’)。

·         在字符串內用‘”’引用的‘’’不需要特殊處理,不需要用雙字符或轉義。同樣,在字符串內用‘’’引用的‘”’也不需要特殊處理。

下面的SELECT語句顯示了引用和轉義如何工作:

mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+
 
mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+
 
mysql> SELECT 'This\nIs\nFour\nLines';
+--------------------+
| This
Is
Four
Lines |
+--------------------+
 
mysql> SELECT 'disappearing\ backslash';
+------------------------+
| disappearing backslash |
+------------------------+

如果你想要在字符串列內插入二進制數據(例如BLOB),必須通過轉義序列表示下面的字符:

NUL NUL字節(ASCII 0)。用‘\0’表示該字符(反斜線後面跟一個ASCII‘0’字符)。 \ 反斜線(ASCII 92)。用‘\\’表示該字符。 ‘ 單引號(ASCII 39)。用‘\’’表示該字符。 “ 雙引號(ASCII 34)。用‘\”’表示該字符。

當編寫應用程序時,在包含這些特殊字符的字符串用於發送到MySQL服務器的SQL語句中的數據值之前,必須對它們正確進行轉義。可以用兩種方法來完成:

·         用轉義特殊字符的函數處理字符串。例如,在C程序中,可以使用mysql_real_escape_string() C API函數來轉義字符。參見25.2.3.52節,“mysql_real_escape_string()”。Perl DBI接口提供一個quote方法來將特殊字符轉換為正確的轉義序列。參見25.4節,“MySQL Perl API”。

·         顯式轉義特殊字符,許多MySQL API提供了占位符功能,允許你在查詢字符串中插入特殊標記,然後當你發出查詢時將數據值同它們綁定起來。在這種情況下,API關注轉義值中的特殊字符。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved