mysql中何时需要引号,何时在MySQL中使用单引号,双引号和反勾号
匿名用户
背勾用于表和列标识符,但只有当标识符是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中使用单引号,双引号和反勾号相关推荐
- mysql的单引号[ ' ],双引号[ ]和esc下面的反勾号[ ` ]的区别
这两天写sql的时候,发现别名什么的喜欢直接使用双引号, 可是好像有时候用双引号会报错,或者单引号会报错, 所以详细把这三个符号区分了一下. 单引号 ' 和双引号 "都可以表示字符串,所以没 ...
- javascript中字符串的‘单‘与“双“引号
通常在使用 javascript 进行编码时,您会遇到对字符串使用"单"或"双"引号的情况,并且想知道两者之间是否有任何真正的区别,如果有,使用一个是否有优势其 ...
- word双引号间距大_解决Word 2013的双引号尴尬
很多朋友已经开始使用Office2013,不过当你在Word2013组件输人双引号的时候,如果是使用智能五笔等第三方输人法,那么经常会出现半角双引号的情况,而系统自带的微软拼音输人法却是一切正常.经过 ...
- 关于perl中的反勾号(``),system和exec
关于perl中的反勾号(``),system和exec 在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1. ...
- perl中的反勾号(``),system和exec
在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1. 反勾号(``) 首先,我们有命令输入操作符, ...
- 小白爬坑记:C语言学习点滴——我对单、双引号的理解
小白爬坑记:C语言学习点滴--我对单.双引号的理解 一.单引号的作用: 二.双引号的作用: 三.字符或字符串容易犯的错误: 三.做个小题: 一.单引号的作用: 将单引号中间的所有符号直接转换为ASCI ...
- python多行注释以三个英文_Python中多行注释可以包含在三对英文半角单引号('''''')或三对英文半角双引号(\\\...
Python中多行注释可以包含在三对英文半角单引号('''''')或三对英文半角双引号(\"\"\"\"\"\")之间 答:√ 变化再现除了 ...
- python字符串中既有单引号又有双引号_Python如何实现在字符串里嵌入双引号或者单引号...
两种方法实现: 1.在双引号前面加个转义符 \ ,即反斜杠.如"Hello \"W \"orld",会输出 Hello "W"orld 2. ...
- java 中多个双引号_如何在Java String中用单个双引号替换两个双引号?
我正在读取CSV文件,并且有一些值,例如 field 1 field 2 field 3 1 test case1 expecting one, and \"two\", and ...
最新文章
- Python Django安装MySQL库
- appcon 图标打包
- js模板引擎——art Template
- 使用复合设计模式扩展持久化的CURD,Select能力
- centos 安装mysql5.6.20_Linux学习15-CentOS安装mysql5.6环境
- 仿京东显示隐藏密码明文案例(字体图标实现)
- 如何开启QtCreator的代码自动补全功能
- python项目方案书-前端python解释器方案预研
- 华为CE交换机下载文件FTP步骤
- NAT ALG PPTP实现简要分析
- appium+python 自动化测试:解决安卓系统双击问题——获取微信聊天内容
- Lens shading
- 2019-4—22爬取头条新闻街拍图片
- Live800:中小企业如何选择在线客服系统?
- Vue学习杂记(八)——SPA模式和前端路由
- 如何使用git在gitee建立仓库并上传开源文件以及会遇到的问题
- linux 蓝牙 手机遥控器,嵌入式Android小项目之万能手机遥控器详解
- android view硬件加速,Android TextureView和硬件加速
- FMEA软件——FMEA的使用情形?
- cisco3560(Cisco3560 设置上行端口)
热门文章
- Linux虚拟机网络设置
- DGP 论文阅读笔记
- Libp2p - IPFS 与 Polkadot :双剑合璧会有时
- vue 生成二维码工具
- 学习笔记-应用光学 第二章 球面和球面系统
- Drafting and Revision: Laplacian Pyramid Network for Fast High-Quality Artistic Style Transfer--T Li
- Page size must not be less than onePage 1 of 1 containing UNKNOWN instances
- 如何保证三维激光扫描的测量精度?
- Bootstrap按钮元素使用方法
- linux怎么找网卡驱动,linux系统下如何安装网卡驱动