博客列表 >PHP数据库篇:PDO链接数据库/CURD增删改查操作

PHP数据库篇:PDO链接数据库/CURD增删改查操作

汇享科技
汇享科技原创
2022年08月18日 13:23:48350浏览

PDO操作

  • 数据库配置文件database.php
  1. <?php
  2. return[
  3. 'type'=>'mysql',
  4. 'host'=>'localhost',
  5. 'dbname'=>'user',
  6. 'port'=>'3306',
  7. 'username'=>'root',
  8. 'password'=>'root',
  9. 'charset'=>'utf8'
  10. ];
  • 数据库链接文件catenate.php
  1. <?php
  2. namespace pdo_edu;
  3. use Exception;
  4. use PDO;
  5. $dbConfig = require 'database.php';
  6. extract($dbConfig);
  7. $dsn = $type. ':host='. $host.';dbname='.$dbname;
  8. try {
  9. $db = new PDO($dsn,$username,$password);
  10. } catch (Exception $e) {
  11. die ("Error!: " . $e->getMessage() . "<br/>");
  12. }
  • 增删改查
    1 增 INSERT

    18348-s90xuuyxc8.png

  1. <?php
  2. //1.命名参数+关联数组 语义化较强
  3. namespace pdo_edu;
  4. use PDO;
  5. //1.引入数据库配置文件
  6. require 'config/catenate.php';
  7. //2.执行数据库操作语句
  8. // 增删改查
  9. // 1.增 INSERT
  10. // 创建执行语句
  11. // INSERT 表名 SET 字段名=内容
  12. $sql = "INSERT `user_list` SET `name`=:usname, `email` = :email, `age`= :age ";
  13. // 预处理语句
  14. $stmt = $db->prepare($sql);
  15. //插入的数据:bindParam使用引用绑定限制类型
  16. $stmt->bindParam(':usname', $name, PDO::PARAM_STR);
  17. $stmt->bindParam(':email', $email, PDO::PARAM_STR);
  18. $stmt->bindParam(':age', $age, PDO::PARAM_INT);
  19. list($name,$email,$age)=['小白','xiaobai@qq.com',25];
  20. // 执行数据
  21. if($stmt->execute()){
  22. //lastInsertId():插入成功的ID
  23. echo '新增成功, id='.$db->lastInsertId() . '<br>';
  24. }else{
  25. echo '执行失败';
  26. //打印错误信息
  27. print_r($stmt->errorInfo());
  28. }
  29. //3.关闭数据库链接
  30. $db = null;
  1. 删除 DELETE

    34124-900q36rxcgg.png

  1. <?php
  2. //1.命名参数+关联数组 语义化较强
  3. namespace pdo_edu;
  4. use PDO;
  5. //1.引入数据库配置文件
  6. require 'config/catenate.php';
  7. //2.执行数据库操作语句
  8. // 增删改查
  9. // 3.删 DELETE
  10. // 创建执行语句
  11. // DELETE 表名 SET 字段名=内容
  12. $sql = "DELETE FROM `user_list` where `id`=:id ";
  13. // 预处理语句
  14. $stmt = $db->prepare($sql);
  15. //插入的数据
  16. $data = ['id'=>3];
  17. // 执行数据
  18. if($stmt->execute($data)){
  19. //rowCount():执行成功的记录数量
  20. if($stmt->rowCount()){
  21. echo '删除成功, 有'.$stmt->rowCount() . '已被删除<br>';
  22. }else{
  23. echo '没有记录被删除';
  24. }
  25. }else{
  26. echo '执行失败';
  27. //打印错误信息
  28. print_r($stmt->errorInfo());
  29. }
  30. //3.关闭数据库链接
  31. $db = null;
  • 修改更新UPDATE

03413-hknd2xywjr.png

  1. <?php
  2. namespace pdo_edu;
  3. use PDO;
  4. //1.引入数据库配置文件
  5. require 'config/catenate.php';
  6. //2.执行数据库操作语句
  7. // 增删改查
  8. // 2.改 UPDATE
  9. // 创建执行语句
  10. // UPDATE 表名 SET 字段名=内容 where 条件内容
  11. $sql = "UPDATE `user_list` SET `name`=:name, `email` = :email where `id` = :id";
  12. // 预处理语句
  13. $stmt = $db->prepare($sql);
  14. //更新的数据
  15. $data = ['name'=>'小白','email'=>'xiaobai@qq.com','id'=>7];
  16. if(stripos($sql,'where') === false){
  17. exit('禁止非法操作无条件更新');
  18. }
  19. // 执行数据
  20. if($stmt->execute($data)){
  21. //rowCount():执行成功的记录数量
  22. if($stmt->rowCount()>0){
  23. echo '修改成功, 有'.$stmt->rowCount() . '条记录被更新<br>';
  24. }else{
  25. echo '没有记录被更新';
  26. }
  27. }else{
  28. echo '执行失败';
  29. //打印错误信息
  30. print_r($stmt->errorInfo());
  31. }
  32. //3.关闭数据库链接
  33. $db = null;
  • 查询 SELECT

34434-fnzs5oetd2k.png

  1. <?php
  2. //1.fetchAll+foreach
  3. namespace pdo_edu;
  4. use PDO;
  5. //1.引入数据库配置文件
  6. require 'config/catenate.php';
  7. //2.执行数据库操作语句
  8. // 增删改查
  9. // 3.查 SELECT
  10. // 创建执行语句
  11. // SELECT 字段名 FROM 表明 where
  12. $sql = "SELECT `id`,`name`,`age`,`email`FROM `user_list` WHERE `age`>20";
  13. // 预处理语句
  14. $stmt = $db->prepare($sql);
  15. // 执行数据
  16. // print_r($arr);
  17. if($stmt->execute()){
  18. $arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
  19. // print_r($arr);
  20. foreach($arr as $v){
  21. printf('<pre>%s</pre>',print_r($v,true));
  22. }
  23. }else{
  24. echo '执行失败';
  25. //打印错误信息
  26. print_r($stmt->errorInfo());
  27. }
  28. //3.关闭数据库链接
  29. $db = null;
  30. //-------
  31. ///第二种方式
  32. <?php
  33. //1.fetch+while
  34. namespace pdo_edu;
  35. use PDO;
  36. //1.引入数据库配置文件
  37. require 'config/catenate.php';
  38. //2.执行数据库操作语句
  39. // 增删改查
  40. // 3.查 SELECT
  41. // 创建执行语句
  42. // SELECT 字段名 FROM 表明 where
  43. $sql = "SELECT `id`,`name`FROM `user_list` WHERE `id`>0";
  44. // 预处理语句
  45. $stmt = $db->prepare($sql);
  46. // 执行数据
  47. // print_r($arr);
  48. if($stmt->execute()){
  49. while($arr = $stmt->fetch(PDO::FETCH_ASSOC)){
  50. print_r($arr);
  51. }
  52. }else{
  53. echo '执行失败';
  54. //打印错误信息
  55. print_r($stmt->errorInfo());
  56. }
  57. //3.关闭数据库链接
  58. $db = null;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议