Heim >Datenbank >MySQL-Tutorial >MySQL数据入库时特殊字符处理

MySQL数据入库时特殊字符处理

WBOY
WBOYOriginal
2016-06-07 15:02:461842Durchsuche

在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“/”)开头,称为转义字符。 MySQL 识别下列转义字符: /0 一个 ASCII 0 (NUL) 字符。 /' 一个 ASCII 39 单引号 (“'”) 字符。 / 一个 ASCII 34 双引号 (“”) 字符。 /b 一个 ASCII 8

在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“/”)开头,称为转义字符。 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 // 
一个 ASCII 92 反斜线 (“/”) 字符。 
/% 
一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。 
/_ 
一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。 
注意如果在某些正文环境内使用 “/%” 或 “/_”,将返回字符串 “/%” 和 “/_” 而不是 “%” 和 “_”。

字符串中包含引号的可以有下列几种写法:

一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。 
一个字符串用双引号“"”来引用的,该字符串中的“"”字符可以用“""”方式转义。 
你也可以继续使用在引号前加一个转义字符“/”来转义的方式。 
一个字符串用双引号“"”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对待而且不必被重复或转义。 
下面显示的 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";+--------------------+| ThisIsFourlines |+--------------------+
如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示:

NUL 
ASCII 0,你应该用 “/0”(一个反斜线和一个ASCII “0”字符)表示它。 

ASCII 92,反斜线。需要用 “//” 表示。 

ASCII 39,单引号。需要用 “/'” 表示。 

ASCII 34,双引号。需要用 “/"” 表示。 
 
你应该在任何可能包含上述特殊字符的字符串中使用转义函数!

另外,很多 MySQL API 提供了一些占位符处理能力,这允许你在查询语句中插入特殊标记,然后在执行查询时对它们绑定数据值。这样,API 会自动为你从数值中转换它们。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn