php增删查改数据库,PHP数据库的增删改查
我们对数据库内容的操作,按操作方式可以分为增删改查(CURD),按数据是否变化:分为读与写两种。读:即是查询(select),写:即是增加(insert),更新(update),删除(delete)。
如下图,我们创建了张原始数据表
接下来,我们要对这个数据库的内容进行增删改查的操作。
首先需要配置数据库参数
namespacepdo_edu;
//数据库连接配置参数
return[
// 1.数据库的类型
'type'=>$type??'mysql',
// 2.数据库的默认主机
'host'=>$host??'localhost',
// 3.默认数据库
'dbname'=>$dbname??'phpedu',
// 4.默认的字符编码集
'charset'=>$charset??'utf8',
// 5.默认的端口号
'port'=>$port??'3306',
// 6.默认的用户名
'username'=>$username??'root',
// 7.默认的用户密码
'password'=>$password??'root',
];
接着创建”connect.php”代码,这个是连接桥梁。
namespacepdo_edu;
useException;
usePDO;
//加载配置参数
$config=require'config/database.php';
//PDO连接数据库三要素,三个重要参数:
//数据源:DSN
//用户名:username
//用户密码:password
//DSN :数据库类型:host=数据库的主机地址;dbname=默认的数据库名称;chart=...;prot=...
$type=$config['type'];
$host=$config['host'];
$dbname=$config['dbname'];
$username=$config['username'];
$password=$config['password'];
//创建DSN
$dsn=sprintf('%s:host=%s;dbname=%s',$type,$host,$dbname);
try{
//连接数据库
$pdo=newPDO($dsn,$username,$password);
}catch(Exception$e){
die($e->getMessage());
}
一、数据库的查询
可以分为单条查询和多条查询。
1.单条查询代码举例:
namespacepdo_edu;
usePDO;
// 1.连接数据库
require'connect.php';
// 2.操作数据表
// $sql = 'SELECT 字段列表 FROM 数据表名称 WHERE查询条件'
$sql='SELECT `id`, `name` FROM `staffs` WHERE `age` >40';
//预处理对象:
$stmt=$pdo->prepare($sql);
//预处理对象¥stmt,就是SQL语句对象
//使用预处理对象调用 execute()执行这条sql语句
$stmt->execute();
//使用:debugDumpParams()调试/查看
// var_dump($stmt->debugDumpParams());
while($staff=$stmt->fetch(PDO::FETCH_ASSOC)){
printf('
%s
',print_r($staff,true));
}
// 3.关闭连接(以下两种方式可任选一种)
// $pdo = null;
unset($pdo);
查询到的结果输出:
2.多条查询代码举例:
namespacepdo_edu;
usePDO;
// 1.连接数据库
require'connect.php';
// 2.操作数据表
// $sql = 'SELECT 字段列表 FROM 数据表名称 WHERE查询条件'
//匿名占位符:?
// $sql = 'SELECT * FROM `staffs` WHERE `age` > ?';
//命名占位符:给一个有意义的字符串,必须用冒号开始
$sql='SELECT * FROM `staffs` WHERE `age` > :age';
$stmt=$pdo->prepare($sql);
//对应匿名占位符使用的是索引数组
// $stmt->execute([40]);
//对应命名占位符使用的是关联数组
$stmt->execute([':age'=>60]);
$staffs=$stmt->fetchAll(PDO::FETCH_ASSOC);
//需要熟记:PDO::FETCH_ASSOC
// print_r($staffs);
foreach($staffsas$staff){
$date=date('Y年m月d日',$staff['hiredate']);
printf('id=%s: 姓名=%s ---职位=%s ---入职时间=%s
',$staff['id'],$staff['name'],$staff['position'],$date);
}
// 3.关闭连接
unset($pdo);
查询到的结果输出:
二、数据库的修改
代码举例:
namespacepdo_edu;
usePDO;
// 1.连接数据库
require'connect.php';
// 2.操作数据表
// $sql = "UPDATE 表名 SET 字段=新值 WHERE 更新条件";
// $sql = "UPDATE `staffs` SET `name`= ? WHERE `id`=? ";//修改名字
// $sql = "UPDATE `staffs` SET `age`= ? WHERE `id`=? ";//修改年龄
$sql="UPDATE `staffs` SET `sex`= ? WHERE `id`=? ";//修改性别
$stmt=$pdo->prepare($sql);
$stmt->execute(['1',9]);
//判断是否执行成功
// $stmt->rowCount():返回写操作产生的受影响的记录数量
if($stmt->rowCount()===1){
echo'更新成功';
}else{
echo'没有记录被更新';
print_r($stmt->errorInfo());
}
// 3.关闭连接
unset($pdo);
输出效果:
三、数据库更新
代码举例:
namespacepdo_edu;
usePDO;
// 1.连接数据库
require'connect.php';
// 2.操作数据表
// $sql = 'INSERT 表名 SET name=?,age=?,....';
$sql="INSERT `staffs` SET `name`= ? , `age`= ? , `sex`= ? ,`position`= ? , `mobile`= ? , `hiredate`= ?";
$stmt=$pdo->prepare($sql);
$data=['李明一',27,1,'农办主任','15637789652',1579244075];
$stmt->execute($data);
//判断是否执行成功
// $stmt->rowCount():返回写操作产生的受影响的记录数量
if($stmt->rowCount()===1){
echo'新增成功,还可以获取新增记录的主键是:'.$pdo->lastInsertId();
}else{
echo'新增失败';
print_r($stmt->errorInfo());
}
// 3.关闭连接
unset($pdo);
输出效果:
三、数据库删除
代码举例:
namespacepdo_edu;
usePDO;
// 1.连接数据库
require'connect.php';
// 2.操作数据表
// $sql = "DELETE FROM 表名 WHERE 删除条件";
$sql="DELETE FROM `staffs` WHERE `id`= ?";
$stmt=$pdo->prepare($sql);
$stmt->execute([19]);
//判断是否执行成功
// $stmt->rowCount():返回写操作产生的受影响的记录数量
if($stmt->rowCount()===1){
echo'删除成功';
}else{
echo'删除失败';
print_r($stmt->errorInfo());
}
// 3.关闭连接
unset($pdo);
输出效果:
四、总结
1.数据库的id一旦创建之后,只能一条一条往前增加,若是删除了中间的id,则跳过被删除的数字,继续往前增加。
2.对数据库的有用的操作,好像也只有查询、修改、增加、删除了。
3.需要熟记的常用语句需要达到默写级别。
4.注意:对数据库的操作需要先引入数据库。PDO连接数据库三要素,三个重要参数,数据源:DSN;用户名:username;用户密码:password。
5.在做数据库连接时需费些心思,后面对数据库的操作,一个模子下来,修改几个参数即可。
6.整个流程的操作,类似于我们在计算机上对文件夹里面的内容进行增删改查,例如,我们可以对文件夹里面的内容进行查找、复制、重命名、删除。
php增删查改数据库,PHP数据库的增删改查相关推荐
- java中的数组增删查改操作,java数组实现增删改查
java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...
- asp连接mysql数据库增删查_【ASP】ASP对Access数据库的连接、增删改查及ASP的基本语法...
本文讨论的是ASP,而不是Visual Studio写出来的.ASPX也就是ASP.NET. ASP不需要任何插件的支持,关键你是配置好WINDOWS的IIS服务器,把页面扔在上面执行就可以了. 不同 ...
- Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统
/******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...
- 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口
无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接 ...
- 无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口
无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接 ...
- SQL Server创建数据库和数据的增删改查
SQL Server创建数据库和数据的增删改查 本文是针对数据的增删改查,数据的创建 首先我们使用命令创建sql server数据库 D盘新建一个文件夹DB use master go --创建数据库 ...
- Node连接MySQL数据库进行基本的增删改查操作(一看就会)
Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...
- Java连接sqlserver数据库,并进行增删改查操作
用编程语言连接数据库是程序员必备的技能,今天我们就来学习一下如何通过Java来连接sqlserver数据库,并实现增删改查操作. 需要用到的工具: Myeclipse,sqlserver数据库,Mic ...
- 1-1 MySQL数据库的基本操作 【增删改查】
1-1 MySQL数据库的基本操作 [增删改查] 一.基础操作 创建数据库 查看数据库 选择数据库 删除数据库 二.建立一个基础数据库 三.基本操作 外键约束与字段自增 数据的增删改 数据查询 数据排 ...
- IDEA2019 Java连接PostgreSQL数据库实现基础功能增删改查
IDEA2019 Java连接PostgreSQL数据库实现基础功能增删改查 注意: 每个方法对应单个java类,可以自行进行整理汇总到一个类中 一.Java通过JDBC连接到PostgreSQL数据 ...
最新文章
- MLPerf基准测试再发榜,浪潮AI服务器刷新18项纪录
- How to install OpenCV 3.x in Linux
- python3.5连接MySQL
- springboot spring.config.location外挂配置文件实战
- Java中的基本数据类型转换(自动、强制、提升)
- Mac下卸载Idea
- 多进程event通信
- 数字媒体播放器行业调研报告 - 市场现状分析与发展前景预测
- java网上书店模板_网上书店模板下载.doc
- Github客户端下载以及使用方法
- 如何用程序哄老婆开心
- Java PDF生成方案介绍及问题汇总
- html插入图片后在网页显示不出来
- neo4j CQL使用
- 【研发问题系列】e1000网卡异常
- dockers移盘挂载
- 学习Redis的正确姿势,有这一篇就够了
- ROS 重名问题解决
- Elasticsearch 7.10 之 Slow Log
- Java 中Calendar、Date、SimpleDateFormat学习总结
热门文章
- Assign arrow function to a variable before exporting as module default import/no-anonymous-default-
- 如何入门 Python 爬虫?50集免费全套教程视频让你轻松掌握
- 企业微信管理员可以看到打卡位置吗
- cropper裁切图片并预览上传(1)
- 单词测试通关学英语的软件,推荐5款最火的英语学习类app
- malloc函数C语言实现
- moxie php,PHP仿微信多图片预览上传功能
- 使用按键精灵编写云顶之奕挂机脚本
- pano2vr无法输出html5,教大家Pano2VR怎么输出全景图的方法
- mysql +cobar_数据库中间件Cobar功能探究