博客列表 >使用pdo遍历数据库中的数据表

使用pdo遍历数据库中的数据表

longlong
longlong原创
2020年07月16日 23:46:391206浏览

1.使用pdo遍历数据库中的数据表

本例要求:使用pdo类的对象去连接数据库,然后使用PDO对象中的prepare()方法获取PDOStatement对象, 接着使用PDOStatement对象的成员方法将获得的结果集中的数据(二维数组)遍历出来,渲染到表格中。

需要遍历的数据表如下:

  1. <?php
  2. // 1. 定义使用PDO时需要用到的一些数据库常量
  3. // 定义主机名
  4. define('DB_HOST','php.edu');
  5. // 定义连接数据库的用户名
  6. define('DB_USER','root');
  7. // 定义连接数据库的密码
  8. define('DB_PWD','root');
  9. // 定义数据库的端口号
  10. define('DB_PORT','3306');
  11. // 定义数据库的类型
  12. define('DB_TYPE','mysql');
  13. // 定义数据库的名称
  14. define('DB_NAME','first');
  15. // 定义数据库的编码方式
  16. define('DB_CHARSET','utf8');
  17. // 定义数据库的数据源名(DSN),包括数据类型,主机名,端口号和数据库名称等。
  18. define('DB_DSN',DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);
  19. // 2. 连接数据库
  20. try {
  21. $pdo = new PDO(DB_DSN,DB_USER,DB_PWD);
  22. // var_dump($pdo);
  23. //捕捉特定于数据库信息的PDOEXCEPTION 异常
  24. } catch (Throwable $th) {
  25. echo $th->getMessage();
  26. }
  27. //捕捉拥有Throwable接口的错误或者其他异常
  28. catch (PDOException $e) {
  29. echo $e->getMessage();
  30. }
  31. // 3. sql语句查询
  32. $sql = "SELECT `id`,`username`,`password`,`sex`,`age`,`tel` FROM `student`";
  33. // 4. 准备执行sql语句,并得到一个对象
  34. $stmt = $pdo->prepare($sql);
  35. // 得到一个PDOStatement对象
  36. // var_dump($res);
  37. // 5.执行
  38. $stmt->execute();
  39. // 指定得到一个结果集,为关联数组
  40. $res = $stmt->fetchAll(PDO::FETCH_ASSOC);
  41. // var_dump($res);
  42. // 6. 遍历数组
  43. if (!empty($res)) {
  44. $table = <<<EOF
  45. <table border="1" align="center" style="border-collapse:collapse;width:500px;text-align:center;margin-top:50px;">
  46. <caption><h2>学生信息表</h2></caption>
  47. <tr>
  48. <td>序号</td>
  49. <td>姓名</td>
  50. <td>密码</td>
  51. <td>性别</td>
  52. <td>年龄</td>
  53. <td>电话</td>
  54. </tr>
  55. EOF;
  56. foreach ( $res as $key=>$value ) {
  57. $table.="<tr>";
  58. $table.="<td>{$value['id']}</td>";
  59. $table.="<td>{$value['username']}</td>";
  60. $table.="<td>{$value['password']}</td>";
  61. $table.="<td>{$value['sex']}</td>";
  62. $table.="<td>{$value['age']}</td>";
  63. $table.="<td>{$value['tel']}</td>";
  64. $table.="</tr>";
  65. }
  66. $table.="</table>";
  67. echo $table;
  68. }

2. 总结

经过mysqli和PDO的学习,我觉得最重要的就是要了解整个执行过程的流程,当对它的流程完全了解之后,就是对类中的函数或属性或方法加以应用,流程的每个环节可能都对应着不同的类,要使用好类中的方法,结合var_dump()的使用,能够更加清楚的知道此变量或结果属于哪一类,从而更好的使用函数或方法。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
灭绝师太2020-07-17 13:15:151楼
注意定界符的结束标识符要顶头写,同行中不能有缩进、空格。或其他特殊符号,你这个是有缩进了吧!