我们对数据库内容的操作,按操作方式可以分为增删改查(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数据库的增删改查相关推荐

  1. java中的数组增删查改操作,java数组实现增删改查

    java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...

  2. asp连接mysql数据库增删查_【ASP】ASP对Access数据库的连接、增删改查及ASP的基本语法...

    本文讨论的是ASP,而不是Visual Studio写出来的.ASPX也就是ASP.NET. ASP不需要任何插件的支持,关键你是配置好WINDOWS的IIS服务器,把页面扔在上面执行就可以了. 不同 ...

  3. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统

    /******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...

  4. 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口

    无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接 ...

  5. 无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口

    无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接 ...

  6. SQL Server创建数据库和数据的增删改查

    SQL Server创建数据库和数据的增删改查 本文是针对数据的增删改查,数据的创建 首先我们使用命令创建sql server数据库 D盘新建一个文件夹DB use master go --创建数据库 ...

  7. Node连接MySQL数据库进行基本的增删改查操作(一看就会)

    Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...

  8. Java连接sqlserver数据库,并进行增删改查操作

    用编程语言连接数据库是程序员必备的技能,今天我们就来学习一下如何通过Java来连接sqlserver数据库,并实现增删改查操作. 需要用到的工具: Myeclipse,sqlserver数据库,Mic ...

  9. 1-1 MySQL数据库的基本操作 【增删改查】

    1-1 MySQL数据库的基本操作 [增删改查] 一.基础操作 创建数据库 查看数据库 选择数据库 删除数据库 二.建立一个基础数据库 三.基本操作 外键约束与字段自增 数据的增删改 数据查询 数据排 ...

  10. IDEA2019 Java连接PostgreSQL数据库实现基础功能增删改查

    IDEA2019 Java连接PostgreSQL数据库实现基础功能增删改查 注意: 每个方法对应单个java类,可以自行进行整理汇总到一个类中 一.Java通过JDBC连接到PostgreSQL数据 ...

最新文章

  1. MLPerf基准测试再发榜,浪潮AI服务器刷新18项纪录
  2. How to install OpenCV 3.x in Linux
  3. python3.5连接MySQL
  4. springboot spring.config.location外挂配置文件实战
  5. Java中的基本数据类型转换(自动、强制、提升)
  6. Mac下卸载Idea
  7. 多进程event通信
  8. 数字媒体播放器行业调研报告 - 市场现状分析与发展前景预测
  9. java网上书店模板_网上书店模板下载.doc
  10. Github客户端下载以及使用方法
  11. 如何用程序哄老婆开心
  12. Java PDF生成方案介绍及问题汇总
  13. html插入图片后在网页显示不出来
  14. neo4j CQL使用
  15. 【研发问题系列】e1000网卡异常
  16. dockers移盘挂载
  17. 学习Redis的正确姿势,有这一篇就够了
  18. ROS 重名问题解决
  19. Elasticsearch 7.10 之 Slow Log
  20. Java 中Calendar、Date、SimpleDateFormat学习总结

热门文章

  1. Assign arrow function to a variable before exporting as module default import/no-anonymous-default-
  2. 如何入门 Python 爬虫?50集免费全套教程视频让你轻松掌握
  3. 企业微信管理员可以看到打卡位置吗
  4. cropper裁切图片并预览上传(1)
  5. 单词测试通关学英语的软件,推荐5款最火的英语学习类app
  6. malloc函数C语言实现
  7. moxie php,PHP仿微信多图片预览上传功能
  8. 使用按键精灵编写云顶之奕挂机脚本
  9. pano2vr无法输出html5,教大家Pano2VR怎么输出全景图的方法
  10. mysql +cobar_数据库中间件Cobar功能探究