字符串是多个字符组成的一个字符序列,由单引号(“'”) 或双引号 (“"”) 字符包围。(但在 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 会自动为你从数值中转换它们

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql 中文转义字符_Mysql中的转义字符_MySQL相关推荐

  1. java 字符串中转义字符_Java中的转义字符

    java 字符串中转义字符 Learn how we can use escape sequence in Java 了解如何在Java中使用转义序列 These characters can be ...

  2. mysql不同版本乱码_解决MySQL中文乱码以及版本不一致问题_MySQL

    一.导出数据 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的 ...

  3. mysql怎么修改表中的文字_mysql表中怎么修改字段?

    在mysql表中,可以使用"ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;"语句来修改字段名称:使用"ALTER TABLE 表名 MODIF ...

  4. mysql在查询结果中添加数据_MySQL将查询结果插入到数据表中

    转自Mysql教程:http://www.baike369.com/content/?id=5582 MySQL将查询结果插入到数据表中 INSERT语句还可以将SELECT语句查询出来的数据插入到另 ...

  5. mysql数据库sql语句中使用变量_mysql数据库sql语句中使用变量

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. C# 连接 Mysql 中文乱码问题

    如题这个问题还是让人比较揪心的.网上也有不少答案,五花八门,不知道谁对谁错.个人认为有几篇文章处理的这个问题还不错,现总结如下: 第一篇: c#连接MySQL解决汉字乱码 突然发现我的数据表中,有汉字 ...

  7. mysql中gbk编码汉字和英文_MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题...

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数 ...

  8. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  9. mysql escape关键字_MySQL中ESCAPE关键字的用法详解

    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. MySQL中,转义字符以"\" ...

最新文章

  1. Typora链接跳转,页内和页外
  2. iOS 修改搜索框的样式为白色
  3. JDK/Dubbo/Spring 三种 SPI 机制,谁更好呢?
  4. GCC对C++标准的实现情况
  5. MYSQL查询空值/NULL值
  6. 蓝牙:为啥叫“蓝”牙,不叫“白”牙?
  7. 类型不匹配 java_java – 与泛型类型不匹配
  8. 不用加号实现两整数相加
  9. Linux设备驱动程序学习 高级字符驱动程序操作[阻塞型I/O和非阻塞I/O]【转】
  10. 11、盛最多水的容器(python)
  11. HTML转义字符参照表
  12. php跳转qq临时会话,QQ客服支持临时会话设置
  13. 浏览器背后的运行机制
  14. C4D插件X-Particles粒子特效(六)
  15. 简单一招能让你的浏览器下载速度提升几十倍,从此弃用IDM等下载器
  16. css绘制星星闪烁,web前端炫酷特效-CSS3制作环形星星发光动画
  17. 四个月宝宝厌奶期症状?
  18. 怎样修改图纸中单个图块的基点 ?
  19. 计算机专业研究生的英语复试
  20. Jenkins --- 三种安装方式

热门文章

  1. java 求1000的阶乘_求1000阶乘的结果末尾有多少个0
  2. Java英尺和米的转换
  3. 计算机端口 closewait,TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT
  4. Oracle数据库恢复表和表数据
  5. jmeter 学习笔记
  6. 【已更新至GitHub】数字图像处理常用图片【免费】【不失效】
  7. 【电气专业知识问答】问:断路器自动跳闸如何判别和处理?
  8. python给视频加背景音乐_python中加背景音乐如何操作
  9. 阿里开源一站式分布式事务框架seata源码分析(AT模式下TM与RM分析)
  10. 心玮医疗赴港递交IPO:盈利预期未知,复星医药等退出股东行列