匿名用户

背勾用于表和列标识符,但只有当标识符是MySQL保留关键字,或者标识符包含空格字符或超出有限集合的字符(见下文)时才有必要。通常建议尽可能避免使用保留关键字作为列或表标识符,以避免引用问题。

单引号应用于字符串值,如values()列表中的字符串值。 MySQL对字符串值也支持双引号,但是单引号被其他RDBMS更广泛地接受,因此使用单引号而不是Double是一个好习惯。

MySQL还要求date和datetime文本值作为字符串使用单引号,如'2001-01-01 00:00:00'。 有关详细信息,请参阅日期和时间文字文档,特别是在日期字符串中使用连字符-作为段分隔符的替代方法。

因此,在您的示例中,我将双引号引用PHP字符串,并在,'val1','val2'值上使用单引号。 null是一个MySQL关键字,是一个特殊的(非)值,因此不加引号。

这些表或列标识符没有一个是保留字,也没有使用需要引用的字符,但我还是用后勾号引用了它们(稍后将详细介绍。。。)。

RDBMS本机函数(例如,MySQL中的now())不应被引用,尽管它们的参数受前面提到的字符串或标识符引用规则的约束。Backtick (`)

table & column ───────┬─────┬──┬──┬──┬────┬──┬────┬──┬────┬──┬───────┐

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

$query = "INSERT INTO `table` (`id`, `col1`, `col2`, `date`, `updated`)

VALUES (NULL, 'val1', 'val2', '2001-01-01', NOW())";

↑↑↑↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑↑↑↑↑

Unquoted keyword ─────┴┴┴┘ │ │ │ │ │ │ │││││

Single-quoted (') strings ───────────┴────┴──┴────┘ │ │ │││││

Single-quoted (') DATE ───────────────────────────┴──────────┘ │││││

Unquoted function ─────────────────────────────────────────┴┴┴┴┘

变量的引用模式没有改变,尽管如果您打算在字符串中直接插值变量,在PHP中必须双引号。 只需确保您已正确转义了SQL中使用的变量。 (建议使用支持预置语句的API,以防止SQL注入)。// Same thing with some variable replacements

// Here, a variable table name $table is backtick-quoted, and variables

// in the VALUES list are single-quoted

$query = "INSERT INTO `$table` (`id`, `col1`, `col2`, `date`) VALUES (NULL, '$val1', '$val2', '$date')";

使用准备好的语句时,请参考文档以确定是否必须引用语句的占位符。 PHP,PDO和MySQLi中最流行的API都包含未加引号的占位符,其他语言中的大多数准备好的语句API也是如此:// PDO example with named parameters, unquoted

$query = "INSERT INTO `table` (`id`, `col1`, `col2`, `date`) VALUES (:id, :col1, :col2, :date)";

// MySQLi example with ? parameters, unquoted

$query = "INSERT INTO `table` (`id`, `col1`, `col2`, `date`) VALUES (?, ?, ?, ?)";

根据MySQL文档,您不需要使用以下字符集对标识符进行引号(backtick):

ASCII:[0-9,a-z,a-z$_](基本拉丁字母,数字0-9,美元,下划线)

您可以使用超出该集合的字符作为表或列标识符,例如,包括空格,但必须对它们进行引号(反勾号)。

mysql中何时需要引号,何时在MySQL中使用单引号,双引号和反勾号相关推荐

  1. mysql的单引号[ ' ],双引号[ ]和esc下面的反勾号[ ` ]的区别

    这两天写sql的时候,发现别名什么的喜欢直接使用双引号, 可是好像有时候用双引号会报错,或者单引号会报错, 所以详细把这三个符号区分了一下. 单引号 ' 和双引号 "都可以表示字符串,所以没 ...

  2. javascript中字符串的‘单‘与“双“引号

    通常在使用 javascript 进行编码时,您会遇到对字符串使用"单"或"双"引号的情况,并且想知道两者之间是否有任何真正的区别,如果有,使用一个是否有优势其 ...

  3. word双引号间距大_解决Word 2013的双引号尴尬

    很多朋友已经开始使用Office2013,不过当你在Word2013组件输人双引号的时候,如果是使用智能五笔等第三方输人法,那么经常会出现半角双引号的情况,而系统自带的微软拼音输人法却是一切正常.经过 ...

  4. 关于perl中的反勾号(``),system和exec

    关于perl中的反勾号(``),system和exec 在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1.  ...

  5. perl中的反勾号(``),system和exec

    在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1.       反勾号(``) 首先,我们有命令输入操作符, ...

  6. 小白爬坑记:C语言学习点滴——我对单、双引号的理解

    小白爬坑记:C语言学习点滴--我对单.双引号的理解 一.单引号的作用: 二.双引号的作用: 三.字符或字符串容易犯的错误: 三.做个小题: 一.单引号的作用: 将单引号中间的所有符号直接转换为ASCI ...

  7. python多行注释以三个英文_Python中多行注释可以包含在三对英文半角单引号('''''')或三对英文半角双引号(\\\...

    Python中多行注释可以包含在三对英文半角单引号('''''')或三对英文半角双引号(\"\"\"\"\"\")之间 答:√ 变化再现除了 ...

  8. python字符串中既有单引号又有双引号_Python如何实现在字符串里嵌入双引号或者单引号...

    两种方法实现: 1.在双引号前面加个转义符 \ ,即反斜杠.如"Hello \"W \"orld",会输出 Hello "W"orld 2. ...

  9. java 中多个双引号_如何在Java String中用单个双引号替换两个双引号?

    我正在读取CSV文件,并且有一些值,例如 field 1 field 2 field 3 1 test case1 expecting one, and \"two\", and ...

最新文章

  1. Python Django安装MySQL库
  2. appcon 图标打包
  3. js模板引擎——art Template
  4. 使用复合设计模式扩展持久化的CURD,Select能力
  5. centos 安装mysql5.6.20_Linux学习15-CentOS安装mysql5.6环境
  6. 仿京东显示隐藏密码明文案例(字体图标实现)
  7. 如何开启QtCreator的代码自动补全功能
  8. python项目方案书-前端python解释器方案预研
  9. 华为CE交换机下载文件FTP步骤
  10. NAT ALG PPTP实现简要分析
  11. appium+python 自动化测试:解决安卓系统双击问题——获取微信聊天内容
  12. Lens shading
  13. 2019-4—22爬取头条新闻街拍图片
  14. Live800:中小企业如何选择在线客服系统?
  15. Vue学习杂记(八)——SPA模式和前端路由
  16. 如何使用git在gitee建立仓库并上传开源文件以及会遇到的问题
  17. linux 蓝牙 手机遥控器,嵌入式Android小项目之万能手机遥控器详解
  18. android view硬件加速,Android TextureView和硬件加速
  19. FMEA软件——FMEA的使用情形?
  20. cisco3560(Cisco3560 设置上行端口)

热门文章

  1. Linux虚拟机网络设置
  2. DGP 论文阅读笔记
  3. Libp2p - IPFS 与 Polkadot :双剑合璧会有时
  4. vue 生成二维码工具
  5. 学习笔记-应用光学 第二章 球面和球面系统
  6. Drafting and Revision: Laplacian Pyramid Network for Fast High-Quality Artistic Style Transfer--T Li
  7. Page size must not be less than onePage 1 of 1 containing UNKNOWN instances
  8. 如何保证三维激光扫描的测量精度?
  9. Bootstrap按钮元素使用方法
  10. linux怎么找网卡驱动,linux系统下如何安装网卡驱动