当前位置: 首页 > news >正文

《PHP和MySQL Web开发从新手到高手(第5版)》一2.6 将数据插入到表中

本节书摘来自异步社区《PHP和MySQL Web开发从新手到高手(第5版)》一书中的第2章,第2.6节,作者【澳】Kevin Yank,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 将数据插入到表中

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会将其当作是文本字符串中的一个单个的反斜杠。

相关文章:

  • 性能调优工具类MyStopwatch
  • MYSQL5 注射技巧笔记
  • 对于MeeGo你所需了解的......
  • RHEL5.5 更新Firefox
  • Visual C++ MFC 中常用宏的含义
  • 《大数据管理概论》一第1章概  述1.1 大数据的基本概念
  • table表格的常用功能
  • 《JavaScript面向对象编程指南》——2.4 基本数据类型综述
  • {转}Java 理论与实践: 正确使用 Volatile 变量
  • 《iOS 8案例开发大全》——实例009 启动模拟器
  • 腾讯:致广大QQ用户的一封信
  • 《JavaScript面向对象编程指南》——2.7 注释
  • 关于360与腾讯QQ之争 IT人士的看法
  • 用SQL创建数据库登录用户
  • 《Spark大数据分析:核心概念、技术及实践》一1.7 总结
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2019年如何成为全栈工程师?
  • Android 架构优化~MVP 架构改造
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Java知识点总结(JavaIO-打印流)
  • Spark RDD学习: aggregate函数
  • vue-router 实现分析
  • 给Prometheus造假数据的方法
  • 聊聊directory traversal attack
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 写给高年级小学生看的《Bash 指南》
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 你对linux中grep命令知道多少?
  • 《码出高效》学习笔记与书中错误记录
  • Spring Batch JSON 支持
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #NOIP 2014# day.1 T2 联合权值
  • #stm32整理(一)flash读写
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)scrum常见工具列表
  • (转)Windows2003安全设置/维护
  • (转)德国人的记事本
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .Net Core缓存组件(MemoryCache)源码解析
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @SpringBootApplication 包含的三个注解及其含义
  • @基于大模型的旅游路线推荐方案
  • [1181]linux两台服务器之间传输文件和文件夹