博客列表 >PHP大牛成长之路:MySQL使用PDO获取结果集

PHP大牛成长之路:MySQL使用PDO获取结果集

周Sir-BLOG
周Sir-BLOG原创
2020年07月17日 23:59:19688浏览

MySQL使用PDO获取结果集

  • 数据库结构如下

  1. <?php
  2. //数据库信息
  3. $dsn='mysql:host=127.0.0.1;dbname=php_pro;charset=utf8';
  4. try {
  5. //新建数据库连接(实例化PDO对象)
  6. $pdo = new PDO($dsn, 'root', 'root');
  7. }catch(PDOException $e){
  8. // 获取PDOException接口错误信息
  9. echo $e->getMessage();
  10. }catch (Throwable $e) {
  11. // 获取Throwable接口或其它错误信息
  12. echo $e->getMessage();
  13. }
  14. //SQL语句(id字段作为条件,使用问号占位符预防注入)
  15. $sql = "SELECT * FROM `users` WHERE `id`<=?";
  16. //准备要执行的语句,返回PDOStatement对象
  17. $res = $pdo->prepare($sql);
  18. //绑定1个参数到问号占位符,多个问号按顺序绑定
  19. $id = 14;
  20. $res -> bindParam(1,$id);
  21. //执行查询语句,成功时返回 TRUE,失败时返回 FALSE。
  22. if($res->execute()){
  23. // 使用PDO的fetchall以关联数组形式返回数据集
  24. $res = $res->fetchAll(PDO::FETCH_ASSOC);
  25. echo "----id----姓名----年龄----邮箱----<br>";
  26. // 遍历结果集
  27. foreach($res as $key => $vulue){
  28. echo "----{$vulue['id']}----{$vulue['username']}----{$vulue['age']}----{$vulue['email']}----<br>";
  29. }
  30. }
  • 遍历输出结果如下;

结论

  • 理解了如何使用pdo类的对象去连接数据库;
  • 使用PDO对象中的prepare()方法获取PDOStatement对象;(注入防止手段有了初步了解)
  • fetchall方法参数:
    • PDO::FETCH_ASSOC 关联数组形式
    • PDO::FETCH_NUM 数字索引数组形式
    • PDO::FETCH_BOTH 两者数组形式都有,这是默认的
    • PDO::FETCH_OBJ 按照对象的形式,类似于以前的mysql_fetch_object()
    • PDO::FETCH_BOUND 以布尔值的形式返回结果,同时将获取的列值赋给bindParam()方法中指定的变量
    • PDO::FETCH_LAZY 以关联数组、数字索引数组和对象3种形式返回结果。`
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
灭绝师太2020-07-18 13:20:441楼
非常好,思维挺跳跃的,了解一下数据表的设计,包括用户名设计唯一索引,时间存储等。