博客列表 >PHP第9课-PDO增删查改-九期线上班

PHP第9课-PDO增删查改-九期线上班

Content っ
Content っ 原创
2019年11月22日 19:20:08531浏览

1.pdo操作:连接、增删查改操作(手写)

首先创建PDO对象,建立与数据库服务器的连接。

  1. <?php
  2. //连接mysql1
  3. /*
  4. try{
  5. $pdo = new PDO('mysql:host=localhost;dbname=jason','root','root');
  6. print_r($pdo);
  7. } catch (PDOException $exception){
  8. echo ('数据库连接异常'.$exception->getMessage());
  9. }
  10. */
  11. //方式2
  12. $db = [
  13. 'type' => 'mysql',
  14. 'host' => 'localhost',
  15. 'dbname' => 'jason',
  16. 'port' => '3306',
  17. 'username' => 'root',
  18. 'password' => 'root'
  19. ];
  20. //配置dsn
  21. $dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}";
  22. try{
  23. $pdo1 = new PDO($dsn,$db['username'],$db['password']);
  24. print_r($pdo1);
  25. } catch (PDOException $exception){
  26. echo '数据库连接方式1错误。。'.$exception->getMessage();
  27. }

pdo增加数据

  1. <?php
  2. require_once __DIR__ . '/connect.php';
  3. //sql语句增加操作
  4. $sql = 'INSERT INTO `category` SET `name`=:name ,`alias`=:alias , `cate_id`=:cate_id';
  5. //预处理
  6. //预处理语句预先将sql命令分析一次,可以多次执行,提高了处理效率,而且能有效防止SQL注入。
  7. $stmt = $pdo1 -> prepare($sql);
  8. //绑定参数
  9. $name = 'rb';
  10. $alias = '日本';
  11. $cate_id = 4;
  12. //bindParam(参数1:'字段名',参数2:(要改变的内容),参数3:参数类型)
  13. $stmt->bindParam('name',$name,PDO::PARAM_STR);
  14. $stmt->bindParam('alias',$alias,PDO::PARAM_STR);
  15. $stmt->bindParam('cate_id',$cate_id,PDO::PARAM_INT);
  16. //执行操作
  17. if ($stmt -> execute()){
  18. //使用预处理更新数据,rowCount()返回影响行数,大于0即表示执行成功的记录数。
  19. if ($stmt ->rowCount() > 0){
  20. echo '数据库增加成功=数量'.$stmt->rowCount();
  21. }
  22. }else{
  23. echo '数据添加失败'.$stmt->errorCode();
  24. }

pdo删除数据

  1. <?php
  2. require_once __DIR__ .'/connect.php';
  3. //sql语句
  4. $sql = 'DELETE FROM `category` WHERE `cate_id` = :cate_id';
  5. //预处理
  6. $stmt = $pdo1->prepare($sql);
  7. //绑定
  8. $cate_id = 5;
  9. $stmt->bindParam('cate_id',$cate_id,PDO::PARAM_STR);
  10. //操作
  11. try {
  12. if ($stmt->execute()){
  13. if ($stmt->rowCount()>0){
  14. echo '删除数据成功,删除数据行'.$stmt->rowCount();
  15. }else{
  16. echo '删除数据失败,没有此数据';
  17. }
  18. }else{
  19. echo '删除数据失败='.$stmt->errorCode();
  20. }
  21. }catch (PDOException $exception){
  22. echo '数据库操作异常'.$exception->getMessage();
  23. }

pdo更新数据

  1. <?php
  2. require_once __DIR__.'/connect.php';
  3. //sql改语言
  4. $sql = 'UPDATE `system` SET `copy` = :copy WHERE `sys_id` = :sys_id';
  5. //预处理
  6. $stmt = $pdo1->prepare($sql);
  7. //绑定参数
  8. $copy = 'jason';
  9. $sys_id = 1;
  10. $stmt->bindParam('copy',$copy,PDO::PARAM_STR);
  11. $stmt->bindParam('sys_id',$sys_id,PDO::PARAM_INT);
  12. //HY093错误信息绑定失败,42s22表示字段错误,检查sql语句和数据库字段是否相等
  13. try{
  14. if ($stmt->execute()){
  15. if ($stmt->rowCount()>0){
  16. echo '修改资料成功,影响数量'.$stmt->rowCount();
  17. }else{
  18. echo '没有匹配到对应的数据或改变数据和原有的一致,修改失败,请检查sql语句';
  19. }
  20. }else{
  21. echo '修改资料失败'.$stmt->errorCode();
  22. }
  23. } catch (PDOException $exception){
  24. echo '数据库操作异常'.$exception->getMessage();
  25. }

pdo查询数据

  1. <?php
  2. require_once __DIR__.'/connect.php';
  3. echo '<hr>';
  4. //sql语句
  5. $sql = 'SELECT *FROM `account`';
  6. //预处理
  7. $stmt = $pdo1->prepare($sql);
  8. //执行查询操作
  9. try{
  10. if ($stmt->execute()){
  11. foreach ($stmt->fetchAll() as $arr){
  12. echo '名字='.$arr['username'] .'-----' .'公司='.$arr['department_list'];
  13. echo '<hr>';
  14. }
  15. }else{
  16. echo '执行查询操作失败,error='.$stmt->errorCode();
  17. }
  18. }catch (PDOException $exception){
  19. echo '数据库操作异常'.$exception->getMessage();
  20. }
  21. //销毁数据库连接
  22. $pdo1 = null;
  23. print_r("销毁".$pdo1);

pdo查询运行效果

手写代码


总结

PDO为PHP访问各类数据库定义了一个轻量级一致性的接口,无论什么数据库,都可以通过一致的方法执行查询和获取数据,而不用考虑不同数据库之间的差异,大大简化了数据库操作。使用PDO可以支持mysql、postgresql、oracle、mssql等多种数据库;
创建设置PDO对象-》编写SQL语句-》预处理-》绑定参数-》启动事务操作-》销毁

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议