博客列表 >11月22日_PDO连接数据库,并实现增删查改操作

11月22日_PDO连接数据库,并实现增删查改操作

fkkf467
fkkf467原创
2019年11月23日 16:52:02634浏览

1. PDO连接数据库

  1. <?php
  2. //$pdo = new PDO('mysql:host=localhost;dbname=movie', 'root', 'root');
  3. //print_r($pdo);
  4. // 参数
  5. $db = [
  6. 'type' => 'mysql',
  7. 'host' => 'localhost',
  8. 'dbname' => 'movie',
  9. 'username' => 'root',
  10. 'password' => 'root',
  11. 'port' => 3306
  12. ];
  13. $dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}";
  14. // 连接数据库,并进行异常处理
  15. try {
  16. $pdo = new PDO($dsn, $db['username'], $db['password']);
  17. // print_r($pdo);
  18. } catch (PDOException $e) {
  19. die('错误信息:' . $e->getMessage());
  20. }

2. PDO操作数据库实现新增数据

  1. <?php
  2. // 1. 连接数据库
  3. require __DIR__ . '/connect.php';
  4. // 2. 创建SQL语句模板
  5. $sql = 'INSERT INTO `movie_list` SET `movie_name`= :movie_name,`movie_img`= :movie_img,
  6. `movie_director`= :movie_director,`movie_write`= :movie_write,`movie_star`= :movie_star,
  7. `movie_type`= :movie_type,`movie_area`= :movie_area,`movie_language`= :movie_language,
  8. `add_time`= :add_time,`movie_length`= :movie_length,`movie_introduction`= :movie_introduction';
  9. // 3. 创建SQL语句对象
  10. $stmt = $pdo->prepare($sql);
  11. //print_r($stmt);
  12. // 4. 将变量绑定到SQL语句模板的命名占位符上
  13. $movie_name = '犯罪现场';
  14. $movie_img = 'fzxc.jpg';
  15. $movie_director = '冯志强';
  16. $movie_write = '冯志强';
  17. $movie_star = '古天乐 宣萱 张继聪 谭耀文';
  18. $movie_type = '悬疑 惊悚 犯罪';
  19. $movie_area = '中国香港';
  20. $movie_language = '粤语';
  21. $add_time = '2019-10-12';
  22. $movie_length = '105';
  23. $movie_introduction = '《犯罪現場》以通缉犯徐糠伏尸屋事件开始,负责调查的警官林法栋(张继聪 饰)发现涉及
  24. 一宗一个月前的劫案,当中同谋包括汪新元(古天乐 饰)、红毛(凌文龙 饰)与欧阳(李灿森 饰),而犯罪现场
  25. 唯一目击证人是一只鹦鹉,林法栋锁定汪新元为嫌犯。不过案情卻不如想像中直接……';
  26. $stmt -> bindParam('movie_name',$movie_name,PDO::PARAM_STR);
  27. $stmt -> bindParam('movie_img',$movie_img,PDO::PARAM_STR);
  28. $stmt -> bindParam('movie_director',$movie_director,PDO::PARAM_STR);
  29. $stmt -> bindParam('movie_write',$movie_write,PDO::PARAM_STR);
  30. $stmt -> bindParam('movie_star',$movie_star,PDO::PARAM_STR);
  31. $stmt -> bindParam('movie_type',$movie_type,PDO::PARAM_STR);
  32. $stmt -> bindParam('movie_area',$movie_area,PDO::PARAM_STR);
  33. $stmt -> bindParam('movie_language',$movie_language,PDO::PARAM_STR);
  34. $stmt -> bindParam('add_time',$add_time,PDO::PARAM_STR);
  35. $stmt -> bindParam('movie_length',$movie_length,PDO::PARAM_INT);
  36. $stmt -> bindParam('movie_introduction',$movie_introduction,PDO::PARAM_STR);
  37. // 5. 执行SQL操作
  38. if ($stmt -> execute()) {
  39. if ($stmt -> rowCount() > 0) {
  40. echo '添加成功了' . $stmt->rowCount() . '条数据';
  41. }
  42. } else {
  43. die('<pre>' . print_r($stmt->errorInfo(), true));
  44. }
  45. // 6. 销毁pdo,关闭连接
  46. $pdo = null;
  47. //unset($pdo);
  48. //print_r($pdo);

3. PDO操作数据库实现修改数据

  1. <?php
  2. // 1. 连接数据库
  3. require __DIR__ . '/connect.php';
  4. // 2. 创建SQL语句模板
  5. $sql = 'UPDATE `movie_list` SET `movie_name`= :movie_name,`movie_img`= :movie_img WHERE `movie_id`= :movie_id';
  6. // 3. 创建SQL语句对象
  7. $stmt = $pdo->prepare($sql);
  8. // 4. 将变量绑定到SQL语句模板的命名占位符上
  9. $movie_name = '双子杀手';
  10. $movie_img = 'szss.jpg';
  11. $movie_id = 8;
  12. $stmt->bindParam('movie_name', $movie_name, PDO::PARAM_STR);
  13. $stmt->bindParam('movie_img', $movie_img, PDO::PARAM_STR);
  14. $stmt->bindParam('movie_id', $movie_id, PDO::PARAM_INT);
  15. // 5. 执行SQL操作
  16. if ($stmt->execute()) {
  17. if ($stmt->rowCount() > 0) {
  18. echo '修改成功了' . $stmt->rowCount() . '条数据';
  19. }
  20. } else {
  21. die('<pre>' . print_r($stmt->errorInfo(), true));
  22. }
  23. // 6. 销毁pdo,关闭连接
  24. $pdo = null;

4. PDO操作数据库实现删除数据

  1. <?php
  2. // 1. 连接数据库
  3. require __DIR__ . '/connect.php';
  4. // 2. 创建SQL语句模板
  5. $sql = 'DELETE FROM `movie_list` WHERE `movie_id`= :movie_id';
  6. // 3. 创建SQL语句对象
  7. $stmt = $pdo->prepare($sql);
  8. // 4. 将变量绑定到SQL语句模板的命名占位符上
  9. $movie_id = 5;
  10. $stmt->bindParam('movie_id', $movie_id, PDO::PARAM_INT);
  11. // 5. 执行SQL操作
  12. if ($stmt->execute()) {
  13. if ($stmt->rowCount() > 0) {
  14. echo '删除成功了' . $stmt->rowCount() . '条数据';
  15. }
  16. } else {
  17. die('<pre>' . print_r($stmt->errorInfo(), true));
  18. }
  19. // 6. 销毁pdo,关闭连接
  20. $pdo = null;

5. PDO操作数据库实现查找数据

  1. <?php
  2. // 1. 连接数据库
  3. require __DIR__ . '/connect.php';
  4. // 2. 创建SQL语句模板
  5. $sql = 'SELECT * FROM `movie_list` WHERE `movie_id`= :movie_id';
  6. // 3. 创建SQL语句对象
  7. $stmt = $pdo->prepare($sql);
  8. // 4. 将变量绑定到SQL语句模板的命名占位符上
  9. $movie_id = 2;
  10. $stmt->bindParam('movie_id',$movie_id,PDO::PARAM_INT);
  11. // 5. 执行SQL操作
  12. $stmt->execute();
  13. // FETCH_ASSOC 关联数组形式
  14. // 遍历输出,返回一维数组
  15. while ($movie = $stmt->fetch(PDO::FETCH_ASSOC)) {
  16. // 格式化输出
  17. echo '<pre>' . print_r($movie, true);
  18. // print_r($movie);
  19. }
  20. // 6. 销毁pdo,关闭连接
  21. $pdo = null;

  1. <?php
  2. // 1. 连接数据库
  3. require __DIR__ . '/connect.php';
  4. // 2. 创建SQL语句模板
  5. $sql = 'SELECT * FROM `movie_list` WHERE `movie_condition`= :movie_condition';
  6. // 3. 创建SQL语句对象
  7. $stmt = $pdo->prepare($sql);
  8. // 4. 将变量绑定到SQL语句模板的命名占位符上
  9. $movie_condition = 2;
  10. $stmt->bindParam('movie_condition',$movie_condition,PDO::PARAM_INT);
  11. // 5. 执行SQL操作
  12. $stmt->execute();
  13. // FETCH_ASSOC 关联数组形式
  14. // 返回二维数组
  15. $movies = $stmt->fetchAll(PDO::FETCH_ASSOC);
  16. echo '<pre>' . print_r($movies, true);
  17. echo '<hr>';
  18. foreach ($movies as $movie) {
  19. echo '<pre>' . print_r($movie, true);
  20. // print_r($movie);
  21. }
  22. // 6. 销毁pdo,关闭连接
  23. $pdo = null;

  1. <?php
  2. // 1. 连接数据库
  3. require __DIR__ . '/connect.php';
  4. // 2. 创建SQL语句模板
  5. $sql = 'SELECT * FROM `movie_list` WHERE `movie_condition`= :movie_condition';
  6. // 3. 创建SQL语句对象
  7. $stmt = $pdo->prepare($sql);
  8. // 4. 将变量绑定到SQL语句模板的命名占位符上
  9. $movie_condition = 2;
  10. $stmt->bindParam('movie_condition',$movie_condition,PDO::PARAM_INT);
  11. // 5. 执行SQL操作
  12. $stmt->execute();
  13. $i = 1;
  14. while ($name = $stmt->fetchColumn(1)) {
  15. echo '查到的第' . $i . '个电影名字:' . $name . '<hr>';
  16. $i++;
  17. }
  18. // 6. 销毁pdo,关闭连接
  19. $pdo = null;

  1. <?php
  2. // 1. 连接数据库
  3. require __DIR__ . '/connect.php';
  4. // 2. 创建SQL语句模板
  5. $sql = 'SELECT * FROM `movie_list` WHERE `movie_condition`= :movie_condition';
  6. // 3. 创建SQL语句对象
  7. $stmt = $pdo->prepare($sql);
  8. // 4. 将变量绑定到SQL语句模板的命名占位符上
  9. $movie_condition = 2;
  10. $stmt->bindParam('movie_condition',$movie_condition,PDO::PARAM_INT);
  11. // 5. 执行SQL操作
  12. $stmt->execute();
  13. // 将结果集中的记录中的字段, 绑定到指定的变量上
  14. $stmt->bindColumn('movie_name', $name);
  15. $stmt->bindColumn('movie_introduction', $intr);
  16. while ($stmt->fetch()) {
  17. echo '片名:' . $name . ',简介:' . $intr . '<hr>';
  18. }
  19. // 6. 销毁pdo,关闭连接
  20. $pdo = null;





6. 总结

PDO操作数据库的基本流程为:

  • 1 连接数据库,创建pdo对象 $pdo = new PDO($dsn, $username, $password);
  • 2 执行SQL语句完成数据库操作
    • 2.1 创建SQL语句对象: $stmt = $pdo->prepare($sql)
    • 2.2 执行SQL查询: $stmt->execute()
    • 2.3 对执行结果进行解析或进一步处理
  • 3 销毁pdo对象,关闭连接: $pdo = null
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议