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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

本节书摘来自异步社区出版社《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, …)
AI 代码解读

因此,要把一个笑话添加到表中,可以使用如下两条命令中的任何一条:

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")
AI 代码解读

注意,在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'
AI 代码解读

你可能会感到奇怪,当笑话文本中使用了引号,会发生什么情况。如果文本包含了单引号,你应该用双引号将文本括起来。相反,如果文本包含双引号,用单引号将文本括起来。

如果我们想要包含在查询中的文本,这样会既包括单引号也包括双引号。因此,你必须在文本字符串中将冲突的符号进行转义(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")
AI 代码解读

如上所示,我使用单引号标记了笑话文本的文本字符串的开始和结束。因此,我必须将字符串中的那3个单引号(即撇号)进行转义,可以通过在它们前面放置反斜杠来实现。MySQL将会看到这些反斜杠,并且知道将字符串中的这些字符当作单引号,而不是当作字符串的结束标记。

现在你可能会问,如何在SQL文本字符串中包含真正的反斜杠呢?答案是,输入一个双反斜杠(),MySQL会将其当作是文本字符串中的一个单个的反斜杠。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
1819
分享
相关文章
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
TIS 是一款基于Web-UI的开源大数据集成工具,通过与人大金仓Kingbase的深度整合,提供高效、灵活的实时数据集成方案。它支持增量数据监听和实时写入,兼容MySQL、PostgreSQL和Oracle模式,无需编写复杂脚本,操作简单直观,特别适合非专业开发人员使用。TIS率先实现了Kingbase CDC连接器的整合,成为业界首个开箱即用的Kingbase CDC数据同步解决方案,助力企业数字化转型。
120 5
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
46 18
从湖仓分离到湖仓一体,四川航空基于 SelectDB 的多源数据联邦分析实践
川航选择引入 SelectDB 建设湖仓一体大数据分析引擎,取得了数据导入效率提升 3-6 倍,查询分析性能提升 10-18 倍、实时性提升至 5 秒内等收益。
从湖仓分离到湖仓一体,四川航空基于 SelectDB 的多源数据联邦分析实践
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
本文分析了YashanDB中PHP通过ODBC查询数据时出现的数据截断问题,表现为超过256字节的数据被截断,以及isql工具无法显示超过300字节长度的数据。问题根源在于YashanDB的ODBC驱动仅支持单次查询,且PHP扩展库默认缓冲区限制。解决方案包括改用PHP ODBC扩展库而非PDO_ODBC,以及调整isql代码逻辑以支持循环取数或一次性读取完整数据。文章还提供了具体代码示例和规避方法,适用于23.2.4.14及更早版本。
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
【YashanDB知识库】PHP使用ODBC驱动无法获取长度为256char以上的数据
【YashanDB知识库】PHP使用ODBC驱动无法获取长度为256char以上的数据
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
168 25
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
【YashanDB 知识库】php 查询超过 256 长度字符串,数据被截断的问题
php 查询超过 256 字节数据,显示被截断:yashandb 的 odbc 驱动接口 SQLGetData 现在只支持单次查询,不支持多次取数据的操作。 isql 显示不出来,isql 工具最大只查询 300 长度的数据,超过了该长度未正常显示。
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等