博客列表 >数据库常用操作——CURD(PDO)

数据库常用操作——CURD(PDO)

赵大叔
赵大叔原创
2020年05月07日 23:38:13788浏览

PDO CURD操作

1、连接数据库:$pdo = new PDO($dsn, $username, $password);

  • DSN: 数据库类型:host=数据库的主机地址;dbname=默认的数据库名称;chart=… ;port= …
  • $dsn = 'mysql:host=localhost;dbname=phpedu';

2、插入语句: $sql = 'INSERT 表名 SET name=?, age=?,.... ';
3、查询语句: $sql = 'SELECT 字段列表 FROM 数据表名称 WHERE 查询条件 ';
4、更新语句:$sql = "UPDATE 表名 SET 字段=新值 WHERE 更新条件"
5、删除语句:$sql = "DELETE FROM 表名 WHERE 删除条件"

连接数据库

  1. <?php
  2. // PDO 连接数据库
  3. use Exception;
  4. use PDO;
  5. $dsn = 'mysql:host=localhost;dbname=phpedu';
  6. $username = 'root';
  7. $password = 'root';
  8. try {
  9. // 连接数据库
  10. $pdo = new PDO($dsn, $username, $password);
  11. // var_dump($pdo);
  12. } catch (Exception $e) {
  13. die($e->getMessage());
  14. }

一、代码演示插入:

  1. <?php
  2. // 插入数据
  3. // 1、连接数据库
  4. require 'connect.php';
  5. // 2. 操作数据表(CURD)
  6. // 插入语句: $sql = 'INSERT 表名 SET name=?, age=?,.... ';
  7. /*
  8. 插入多条:
  9. INSERT INTO `staffs` (`id`, `msnv`, `name`, `hiredate`, `donvi`, `congviec`, `luongtong`, `luongthuc`)
  10. VALUES
  11. (`id`, `msnv`, `name`, `hiredate`, `donvi`, `congviec`, `luongtong`, `luongthuc`)
  12. ...
  13. ...
  14. */
  15. $sql = "INSERT `staffs` SET `msnv` = ?, `name` = ?, `hiredate` = ?, `donvi` = ?, `congviec` = ?, `luongtong` = ?, `luongthuc` = ?";
  16. $stmt = $pdo->prepare($sql);
  17. $data = ['TH041200', '阮文局 NGUYỄN VĂN CUỘC', 1439395200, '三分厂络筒运转甲班', '络筒挡车工', 13810926, 13153181];
  18. $stmt->execute($data);
  19. // 判断是否执行成功
  20. // $stmt->rowCount(): 返回写操作产生的受影响的记录数量
  21. if ($stmt->rowCount() >= 1) {
  22. echo '新增成功, 新增记录的主键是: ' . $pdo->lastInsertId();
  23. } else {
  24. echo '新增失败';
  25. print_r($stmt->errorInfo());
  26. }
  27. // 3. 关闭连接[可选]
  28. unset($pdo);

演示效果:

二、代码演示查询:

  1. <?php
  2. // 数据表查询: 多条查询
  3. use PDO;
  4. // 1. 连接数据库
  5. require 'connect.php';
  6. // 2. 操作数据表(CURD)
  7. // 查询语句: $sql = 'SELECT 字段列表 FROM 数据表名称 WHERE 查询条件 '
  8. $sql = 'SELECT * FROM `staffs`';
  9. // 预处理对象$stmt:为了防止 SQL注入
  10. $stmt = $pdo->prepare($sql);
  11. // 预处理对象$stmt , 就是SQL语句对象
  12. // 使用预处理对象调用 execute()执行这条sql语句
  13. $stmt->execute();
  14. $staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);
  15. // print_r($staffs);
  16. ?>
  17. <!DOCTYPE html>
  18. <html lang="en">
  19. <head>
  20. <meta charset="UTF-8">
  21. <title>员工工资明细</title>
  22. <style>
  23. table {border-collapse: collapse;border:1px solid black;text-align: center;}
  24. th {border:1px solid black;padding: 5px;}
  25. td {border:1px solid black;padding: 5px;}
  26. tr:first-of-type {background-color:#eee;color: coral;}
  27. </style>
  28. </head>
  29. <body>
  30. <h4>员工工资明细</h4>
  31. <table>
  32. <tr>
  33. <th>STT</th>
  34. <th>工号</th>
  35. <th>姓名</th>
  36. <th>入职日期</th>
  37. <th>部门</th>
  38. <th>岗位</th>
  39. <th>应发</th>
  40. <th>实领</th>
  41. </tr>
  42. <?php foreach ($staffs as $staff) : ?>
  43. <tr>
  44. <td><?php echo $staff['id']; ?></td>
  45. <td><?php echo $staff['msnv']; ?></td>
  46. <td><?php echo $staff['name']; ?></td>
  47. <td><?php echo date('Y/m/d', $staff['hiredate']); ?></td>
  48. <td><?php echo $staff['donvi']; ?></td>
  49. <td><?php echo $staff['congviec']; ?></td>
  50. <td><?php echo $staff['luongtong']; ?></td>
  51. <td><?php echo $staff['luongthuc']; ?></td>
  52. </tr>
  53. <?php endforeach;?>
  54. </table>
  55. </body>
  56. </html>
  57. <?php
  58. // 3. 关闭连接[可选]
  59. // $pdo = null;
  60. unset($pdo);
  61. ?>

演示效果:

三、代码演示更新:

  1. <?php
  2. // 数据表更新操作
  3. use PDO;
  4. // 1. 连接数据库
  5. require 'connect.php';
  6. // 2. 操作数据表(CURD)
  7. // 更新语句:$sql = "UPDATE 表名 SET 字段=新值 WHERE 更新条件"
  8. $sql = "UPDATE `staffs` SET `donvi` = ? WHERE `id`= ?";
  9. $stmt = $pdo->prepare($sql);
  10. $stmt->execute(['三分厂前纺运转丙班', 2]);
  11. // echo $sql;die;
  12. // 判断是否执行成功
  13. // $stmt->rowCount(): 返回写操作产生的受影响的记录数量
  14. if ($stmt->rowCount() >= 1) {
  15. echo '更新成功';
  16. } else {
  17. echo '没有记录被更新';
  18. print_r($stmt->errorInfo());
  19. }
  20. // 3. 关闭连接[可选]
  21. unset($pdo);

演示效果:

四、代码演示删除:

  1. <?php
  2. // 数据表删除操作
  3. use PDO;
  4. // 1. 连接数据库
  5. require 'connect.php';
  6. // 2. 操作数据表(CURD)
  7. // 删除语句:$sql = "DELETE FROM 表名 WHERE 删除条件"
  8. $sql = "DELETE FROM `staffs` WHERE `id`=:id";
  9. $stmt = $pdo->prepare($sql);
  10. $stmt->execute(['id'=>12]);
  11. // 判断是否执行成功
  12. // $stmt->rowCount(): 返回写操作产生的受影响的记录数量
  13. if ($stmt->rowCount() === 1) {
  14. echo '删除成功';
  15. }
  16. // 3. 关闭连接[可选]
  17. unset($pdo);

演示效果:

总结

重点掌握sql语句PDO预处理方法sql语句一定要做到倒背如流。

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