《PHP和MySQL Web开发从新手到高手(第5版)》一一2.6 将数据插入到表中
本节书摘来自异步社区出版社《PHP和MySQL Web开发从新手到高手(第5版)》一书中的第2章,第2.6节,作者: 【澳】Kevin Yank,更多章节内容可以访问云栖社区“异步社区”公众号查看。
PHP和MySQL Web开发从新手到高手(第5版)
数据库创建好了,表也创建好了,剩下的工作就是将笑话放入到数据库中。将数据插入到数据库中的命令叫作INSERT,名字相当贴切。这条命令有两种基本形式:
INSERT INTO tableName SET column1Name = column1Value, column2Name = column2Value, INSERT INTO tableName (column1Name, column2Name, …) VALUES (column1Value, column2Value, …)
因此,要把一个笑话添加到表中,可以使用如下两条命令中的任何一条:
INSERT INTO joke SET joketext = "Why did the chicken cross the road? To get to the other side!", jokedate = "2012-04-01" INSERT INTO joke (joketext, jokedate) VALUES ( "Why did the chicken cross the road? To get to the other side!", "2012-04-01")
注意,在INSERT命令的两种形式中,列的顺序必须与值的顺序保持一致。否则,列的顺序就没有意义了。继续进行,交换列和值对的顺序并尝试该查询命令。
当你输入查询的时候,应该会注意到,我们使用了双引号(")来表明笑话的文本从哪里开始以及从哪里结束。像这样用引号括起来的一段文本,叫作文本字符串(text string)。这也是在SQL中表示大多数数据值的一种方式。例如,日期也是以"YYYY-MM-DD".的形式作为文本字符串输入的。
如果你愿意,可以输入单引号而不是双引号把文本字符串括起来:
INSERT INTO joke SET joketext = Why did the chicken cross the road? To get to the other side!, jokedate = 2012-04-01
你可能会感到奇怪,当笑话文本中使用了引号,会发生什么情况。如果文本包含了单引号,你应该用双引号将文本括起来。相反,如果文本包含双引号,用单引号将文本括起来。
如果我们想要包含在查询中的文本,这样会既包括单引号也包括双引号。因此,你必须在文本字符串中将冲突的符号进行转义(escape)。在SQL中,通过在一个字符的前面添加一个反斜杠()来进行转义。这会通知MySQL,忽略掉这个字符可能具有的任何“特殊含义”。在单引号或双引号的例子中,它告知MySQL不要将这个符号当作是文本字符串的结束符号。
为了让这一点尽可能的清晰,以下是用于一则既包含单引号又包含双引号的笑话的INSERT命令的例子:
INSERT INTO joke (joketext, jokedate) VALUES ( Knock-knock! Who\s there? Boo! "Boo" who? Don\t cry; it\s only a joke!, "2012-04-01")
如上所示,我使用单引号标记了笑话文本的文本字符串的开始和结束。因此,我必须将字符串中的那3个单引号(即撇号)进行转义,可以通过在它们前面放置反斜杠来实现。MySQL将会看到这些反斜杠,并且知道将字符串中的这些字符当作单引号,而不是当作字符串的结束标记。
现在你可能会问,如何在SQL文本字符串中包含真正的反斜杠呢?答案是,输入一个双反斜杠(),MySQL会将其当作是文本字符串中的一个单个的反斜杠。
web前-JAVA后端 数据API接口交互协议 目前热门的主流web前端和Java后端数据技术架构:设备端和后台服务端,两者之间主要有两类的数据流和一类的控制流进行数据的交互。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- mysql数据库数据同步/主从复制的配置方法
- MySQL中有关NULL的计算
- PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)
- 区别 PHP 的 $_POST、$HTTP_RAW_POST_DATA 和 php://input
- PHP如何自动识别第三方Restful API的内容,自动渲染成 json、xml、html、serialize、csv、php等数据
- PHP函数 mysql_real_escape_string 与 addslashes 的区别
- Linux下Apache、PHP、MySQL默认安装路径
- PHP安装模式cgi、fastcgi、php_mod比较
- 【Mysql安装】Mac下安装mysql
- 【异常】ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock
- 用Navicat连接mysql报错:2003-Can't connect to MySql server on '10.100.0.109'(10039)
- 分享一:关于mysql中避免重复插入记录方法
- php与mysql通讯那点事
- Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
- php类库PHP QR Code 二维码
- Ruby on Rails 3 Can't connect to local MySQL server through socket '/tmp/mysql.sock' on linux
- MySQL索引背后的数据结构及算法原理
- MySQL专题3 SQL 优化
- centos下 Apache、php、mysql默认安装路径
- MySQL · TokuDB · checkpoint过程
- Atitit 前端测试最简化内嵌web服务器 php 与node.js 目录 1.1. php内置Web Server1 1.2. Node的2 Node的比较麻烦些。。Php更加简单
- atitit。mssql sql server 转换mysql 及 分页sql ast的搭建
- MySQL用户权限(Host,User,Password)管理(mysql.user)
- 近数据处理(NDP)——GaussDB(for MySQL)性能提升的秘密
- mysql - 账号授权
- linux下配置php Apache mysql
- SMB暴力破解——和ssh、mysql的类似 无非服务名不一样
- 统计php程序运行时间及设置PHP最长运行时间
- Mysql安装多台mysql
- MySQL数据库篇之mysql的快速启动和停止
- MySQL数据库恢复(LOAD DATA)
- MySQL完全备份、增量备份和差异备份