Blogger Information
Blog 43
fans 4
comment 0
visits 19388
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP数据库篇:PDO链接数据库/CURD增删改查操作
汇享科技
Original
363 people have browsed it

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;
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post