Blogger Information
Blog 38
fans 1
comment 0
visits 28760
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
11月22日_PDO连接数据库,并实现增删查改操作
fkkf467
Original
628 people have browsed it

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
Correcting teacher:查无此人查无此人

Correction status:qualified

Teacher's comments:完成的不错。理顺流程,pdo对你来说就简单了。
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