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

PHP 轉義符 使用教程

編輯:PHP基礎知識
 

轉義符


字符串是多個字符組成的一個字符序列,由單引號(“'”) 或雙引號 (“"”) 字符包圍。(但在 ANSI 模式中運行時只能用單引號)。

例如:

'a string'

"another string"

在一個字符串中,如果某個序列具有特殊的含義,每個序列以反斜線符號 (“\”)開頭,稱為轉義字符。 MySQL 識別下列轉義字符:

\0 一個 ASCII 0 (NUL) 字符。 \' 一個 ASCII 39 單引號 (“'”) 字符。 \" 一個 ASCII 34 雙引號 (“"”) 字符。 \b 一個 ASCII 8 退格符。 \n 一個 ASCII 10 換行符。 \r 一個 ASCII 13 回車符。 \t 一個 ASCII 9 制表符(TAB)。 \z ASCII(26) (Control-Z)。這個字符可以處理在 Windows 系統中 ASCII(26) 代表一個文件的結束的問題。(當使用 mysql database < filename 時 ASCII(26) 可能會引起問題產生。) \\ 一個 ASCII 92 反斜線 (“\”) 字符。 \% 一個 ASCII 37 “%” 字符。它用於在正文中搜索“%”的文字實例,否則這裡“%”將解釋為一個通配符。查看章節 6.3.2.1 字符串比較函數。 \_ 一個 ASCII 95 “_” 字符。它用於在正文中搜索“_”的文字實例,否則這裡“_”將解釋為一個通配符。查看章節 6.3.2.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 |

+--------------------+


如果你想要把二進制數據插入到一個字符類型的字段中(例如BLOB),下列字符必須由轉義序列表示:

NUL ASCII 0,你應該用 “\0”(一個反斜線和一個ASCII “0”字符)表示它。 \ ASCII 92,反斜線。需要用 “\\” 表示。 ' ASCII 39,單引號。需要用 “\'” 表示。 " ASCII 34,雙引號。需要用 “\"” 表示。

如果你寫 C 代碼,你可以使用 C API 函數mysql_real_escape_string() 來為 INSERT 語句轉義字符。查看章節 8.1.2 C API 函數概述。在 Perl 中,你可以使用 DBI 包中的 quote 方法來將這些特殊字符轉換成適當的轉義序列。查看章節 8.5.2 DBI 接口。

你應該在任何可能包含上述特殊字符的字符串中使用轉義函數!

另外,很多 MySQL API 提供了一些占位符處理能力,這允許你在查詢語句中插入特殊標記,然後在執行查詢時對它們綁定數據值。這樣,API 會自動為你從數值中轉換它們。

 

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