pdo模块,实际是php data object php数据对象
默认php.ini里面是开着的
首先php用来操作数据库的一共有3大类

  1. pdo类
  2. 预处理类
  3. 异常处理类

在写一个简单小模块中先熟悉一下pdo类下面的这些操作方法

  1. 连接pdo数据库
//dsn 数据源名称
$dsn  ="mysql:host=localhost;dbname=www.hm.com";
//数据库名称
$username = "hmcom";
//数据库密码
$password = "123456";
//pdo对象
$pdo = new PDO($dsn,$username,$password);
//设置字符集
//exec()执行一条sql 并返回条数,用于增删改 查用query()
$pdo->exec('set names utf8');
//设置属性
$pdo->setAttribute();

这样一来数据库就连接上了,搞点小例子吧
随便搞一个表实现用户简单的增删改查

  1. config.php
//因为增删改查都需要调用数据库
//就姑且放到这里用的时候引用一下就好
$dsn = "mysql:host=localhost;dbname=www.hm.com";
$username = "hmcom";
$password = "123456";
$pdo = new PDO($dsn,$username,$password);
$pdo->exec('set names utf8');
  1. index.php 列表页面
<?php
/*** Created by PhpStorm.* User: lenovo* Date: 2020/12/24* Time: 9:51*/
//用户模块开发
include 'config.php';
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
//这里可加可不加,加了统一设置,不加就写的时候设置
//这个是异常的时候,可以展示异常的信息,如果不写的话getMessage()就显示不出来
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$sql = "select * from `user` ";
//返回预处理对象
$smt = $pdo->prepare($sql);
//执行预处理语句 bool值
$smt->execute();
//查询并得到数据集合
//其实也可以这样
//if($smt->execute()){//$result  =  $smt -> fetchAll();
//}
//不过看手册好像也没这么弄
$result  =  $smt -> fetchAll();?>
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"><!-- JS, Popper.js, and jQuery --><script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script><style>td.th{vertical-align: middle !important;}</style>
</head>
<body><div class="container"><h2 class="page-header">用户管理</h2><table class="table table-striped table-bordered"><tr><th>编号</th><th>用户名</th><th>密码</th><th>修改</th><th>删除</th></tr><?foreach ($result as $row){echo "<tr>";echo "<td>{$row['id']}</td>";echo "<td>{$row['name']}</td>";echo "<td>{$row['money']}</td>";echo "<td><a class='btn btn-warning' href='model.php?id={$row['id']}'>修改</a></td>";echo "<td><a class='btn btn-danger' href='del.php?id={$row['id']}'>删除</a></td>";echo "</tr>";}?></table><p ><a class="btn btn-success btn-primary btn-large" href="add.php">添加用户</a></p></div>
</body>
</html>

//这个是异常的时候,可以展示异常的信息,如果不写的话getMessage()就显示不出来
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

  1. del.php 删除页面
<?php
/*** Created by PhpStorm.* User: lenovo* Date: 2020/12/24* Time: 14:23*/include "config.php";
$id = $_GET['id'];
//用了下事务机制 想想打钱就知道了
//事务是多个sql执行的时候, 如果都成功则执行成功,事件结束,如果其中有一个失败,则回滚,事件最终也会结束
//开启事务
$pdo->beginTransaction();
//事务一般跟异常处理放在一起哟
try{$sql = "delete from `user` where id = ?";//返回一个预处理对象$smt = $pdo->prepare($sql);//把一个值绑定到一个参数 $smt->bindValue(1,$id,PDO::PARAM_INT);
//    $smt->execute();这里返回的是bool值 执行预处理语句if($smt->execute()){echo '<script>alert("删除成功");location="index.php"</script>';}//成功提交并结束事务$pdo->commit();
}catch (PDOException $pdoex){$pdoex->getMessage();//得到异常位置的信息$pdoex->getCode();//得到异常位置的code值$pdoex->getLine();//得到异常位置的行数//失败回滚并结束事务$pdo->rollback();
}
  1. 修改页面
<?php
/*** Created by PhpStorm.* User: lenovo* Date: 2020/12/24* Time: 14:38*/include "config.php";
if(empty($_POST)){$id = $_GET['id'];echo $id;$sql = "select * from `user` where id = ? ";$smt = $pdo->prepare($sql);$smt->bindValue(1,$id,PDO::PARAM_INT);
//执行预处理语句$smt->execute();
//成功了的话,开始操作后面的$result  =  $smt -> fetchAll();foreach ($result as $row){$name = $row['name'];$money = $row['money'];}
}else{$id = $_POST['id'];$name = $_POST['name'];$money = $_POST['money'];$sql = "update `user` set name='$name',money='$money' where id = $id ";$smt = $pdo->prepare($sql);if($smt->execute()){echo '<script>alert("修改成功");</script>';echo "<script>location='index.php'</script>";}else{echo '修改失败';}
}?>
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body>
<h2 class="page-header">用户管理
</h2>
<form action="" method="post" enctype="multipart/form-data"><input type="text" name="name" value="<?=$name?>"><input type="text" name="money" value="<?=$money?>"><input type="hidden" name="id" value="<?=$id?>"><input type="submit" value="提交">
</form></body>
</html>

忘记写样式了

  1. 增加页面
<?php
/*** Created by PhpStorm.* User: lenovo* Date: 2020/12/24* Time: 14:38*/include "config.php";
if(empty($_POST)){//    echo '请重新提交';
}else{$name = $_POST['name'];$money = $_POST['money'];$sql = "insert into `user`(name,money) value('{$name}',$money)";$smt = $pdo->prepare($sql);if($smt->execute()){//这里得到影响的行数$num = $smt->rowCount();echo "<script>alert('新增'+$num+'条数据');location='index.php'</script>";}
}
?>
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"><!-- JS, Popper.js, and jQuery --><script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
</head>
<body>
<div class="container"><h2 class="page-header">用户管理</h2><form action="add.php" method="post" enctype="multipart/form-data"><div class="form-group"><label for="">用户名:</label><input type="text" class="form-control" name="name" value="" placeholder="请输入用户名"></div><div class="form-group"><label for="">密码:</label><input type="text" class="form-control" name="money" value="" placeholder="请输入密码"></div><input class="btn btn-primary btn-success" type="submit" value="提交"></form>
</div></body>
</html>

如果有不足或者写错的地方欢迎大佬们指点指点谢谢。

玩一下php的pdo操作相关推荐

  1. php使用pdo操作mysql数据库实例_php5使用pdo连接数据库实例

    本文为大家介绍下php pdo的用法. 一,pdo简介 pdo(php data object) 是php 5 中加入的东西,是php 5新加入的一个重大功能,因为在php 5以前的php4/php3 ...

  2. PDO操作MYSQL

    <?php//PDO操作mysql数据库 增删改查//1.准备dsn$mysql_dsn="mysql:host=localhost;dbname=cz;charset=utf8&qu ...

  3. pdo mysql 建库_一帖让PHP小白彻底了解PDO操作数据库的方法

    php与mysql的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) .在这三种方法中,"民间"很多是倾向于使用PDO, ...

  4. 玩转 Pandas 的 Groupby 操作

    作者:Lemon 来源:Python数据之道 玩转 Pandas 的 Groupby 操作 大家好,我是 Lemon,今天来跟大家分享下 pandas 中 groupby 的用法. Pandas 的 ...

  5. php使用pdo操作mysql数据库实例_php使用PDO操作MySQL数据库实例_PHP

    本文实例讲述了php使用PDO操作MySQL数据库的方法.分享给大家供大家参考.具体分析如下: PDO是mysql数据库操作的一个公用类,我们不需要进行自定类就可以直接使用pdo来操作数据库,但是在p ...

  6. PHP数据库扩展 - PDO操作

    PDO操作 PDO操作 描述:odp是php对数据库操作统一化的操作 语法:$pdo = new PDO("DB名:host=主机名;dbname=DB名","DB账号& ...

  7. 玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53750584 本文出自[DylanAndroid的博客] 玩转JDBC打造数据 ...

  8. PHP pdo查询sqlite,PHP PDO 操作 sqlite数据库 案例

    PHP PDO 操作 sqlite数据库 案例 1.需求: 已知: 1).一个json文件,里面是一个二维数组,数组解析出来为: array ( 0 => array ( 'title' =&g ...

  9. [share]PDO操作MySql类

    转载自 分享 最终编辑 liujijunbd 为了让自己的数据类能够做到最大化的重用,就写个能够重用的PDO操作MySql的类: 由于pdo可以连接现在流行的各种数据库,所以单独的写个配置类类来完成不 ...

最新文章

  1. CMSIS对异常和中断标识符、中断处理函数名以及中断向量异常号都有严格的要求。
  2. 汇编语言数据传送示例
  3. 2020蓝桥杯省赛---java---B---7(单词分析)
  4. 如何在JavaScript中区分深层副本和浅层副本
  5. 感知哈希算法原理与实现
  6. 新图表来袭,FineReport新增热力地图、漏斗图、图表切换新功能
  7. C++_类和对象_C++继承_继承的方式_公共继承_保护继承_私有继承---C++语言工作笔记062
  8. 基于swing的java系统_Java实验--基于Swing的简单的歌曲信息管理系统(一)
  9. android stadio 编译报错:download fastutil-7.2.0.jar
  10. h5是可以一键打包小程序的_Vue项目快速输出到小程序H5-如何将h5打包成小程序-h5小程序怎么做...
  11. web逻辑思维题目_有关于最难的逻辑思维题目及答案
  12. 迅雷上如何下载热映的电影大片~~
  13. sqlite循环插入时使用stmt需要reset,否则会插入出错
  14. linux 清理垃圾指令,Linux清理系统垃圾
  15. 趣图:新手程序员 vs 高级程序员
  16. SAP ERP 与 Oracle ERP 比较(转)
  17. java 检测表情符号_java 过滤表情符号
  18. XGBOOST与GBD区别笔记
  19. MATLAB的使用(二) help命令全解
  20. STM32学习——入门小项目

热门文章

  1. 【文末送书】今年应届算法工程师的薪酬,看了作何感想?
  2. U盘文件删除如何恢复?U盘恢复教程
  3. 计算机基础上海交大版教案教学进度,上海交通大学继续教育学院(网络教育)上课时间表详解.pdf...
  4. php框架----composer加载medoo数据库类
  5. Python_Turtle绘制正弦函数(采用函数描点法绘制)(turtle实现)【2021-11-14】
  6. 如何炸开(分解)CAD多重插入块
  7. Danalab线束测试仪
  8. 应届生半年c++培训计划
  9. 视频转换软件 WinAvi
  10. cupsd进程_Linux进程及作业管理