博客列表 >1127 PHP程序员必学的知识点-PDO

1127 PHP程序员必学的知识点-PDO

酒淋后
酒淋后原创
2020年12月24日 00:43:07718浏览

前言:

  1. 简介:PDO 就是PHP Data Object的简称;
  2. 用途:PDO主要用来代替数据库操作类;
  3. 优势:PDO同时可以操作多个数据库,例如:mysqlsql serverOracleDB2等;
  4. 其他:
    PDO扩展为PHP访问数据库定义了一个轻量级的一致性的接口,无论使用什么数据库,都可以通过一致的函数来执行查询和获取数据;
    PDO是一个数据库访问抽象层,作用是同一各种数据库的访问接口与MYSQLMSSQL函数库相比, PDO让跨数据库的使用更具有亲和力,与ADODBMDB2相比,PDO高效

PHP中的PDO访问流程图:

数据库的配置信息:

  1. $dsn = "mysql:host=127.0.0.1;port=3306;dbname=student;charset=utf8";
  2. $username = "root";
  3. $password = "password";

创建PDO 类的对象:

  1. $pdo = new PDO($dns,$username,$password);

插入一条记录:

  1. $sql = "insert into student values(null,"","","18")";
  2. $record = $pdo->exec($sql); // exec() 不会返回结果集,返回整型;
  3. echo “插入了{$record}条记录";

执行 SQL 语句:query():

  1. // 以 PDOStatement 对象形式返回结果集

描述:执行select、show语句,并返回一个结果集对象(PDOStatement)
语法:public PDOStatement PDO::query(string $Statement)

  1. $dsn = "mysql:host=localhost;port=3306;dbname=student;charser=urf8";
  2. $username = "root";
  3. $password = "root";
  4. $pdo=new pdo($dsn,$username,$password);
  5. // 查询数据并返回结果集
  6. $sql="select * from student order by id desc";
  7. $PDOStatement = $pdo->query($sql);
  8. // 遍历对象
  9. forach($PDOStatement as $row){
  10. print_r($row); // 由于是数组,所以用print_r打印输出查看;
  11. }

下面是我从数据库查询到的数据:

  1. Array
  2. (
  3. [id] => 19
  4. [0] => 19
  5. [name] => 张学友
  6. [1] => 张学友
  7. [sex] =>
  8. [2] =>
  9. [age] => 34
  10. [3] => 34
  11. [class] => 5
  12. [4] => 5
  13. )
  14. Array
  15. (
  16. [id] => 18
  17. [0] => 18
  18. [name] => 酒淋后
  19. [1] => 酒淋后
  20. [sex] =>
  21. [2] =>
  22. [age] => 12
  23. [3] => 12
  24. [class] => 5
  25. [4] => 5
  26. )
  27. Array
  28. (
  29. [id] => 16
  30. [0] => 16
  31. [name] => 法定
  32. [1] => 法定
  33. [sex] =>
  34. [2] =>
  35. [age] => 281
  36. [3] => 281
  37. [class] => 5
  38. [4] => 5
  39. )

执行 SQL 语句:feach():

描述:从结果集中获取一行,并将指针下移;
语法:mixed PDOStatement::fetch([int $fetch_tyle])
参数:
PDO::FETCH_ASSOC:返回一个索引为结果集的数组;
PDO::FETCH_BOTH:返回一个索引为结果集和以0开始的列号数组(该参数为默认参数,上面就是这个默认参数输出的数据);
PDO::FETCH_NUM:返回索引为以0开始的结果集列号的数组;

例:

  1. $arr=$PDOStatement->fetch(PDO:FETCH_ASSOC);
  2. print_r($arr);

下面是我从数据库查询到的数据:

  1. Array
  2. (
  3. [id] => 19
  4. [name] => 张学友
  5. [sex] =>
  6. [age] => 34
  7. [class] => 5
  8. )

执行fetchAll()

描述: 返回一个包含结果集中所有行的数组
语法:同fetch

  1. $arrs=$PDOStatement->fetchAll(PDO::FETCH_ASSOC);
  2. print_r($arrs);

下面是我从数据库查询到的数据:

执行fetchColumn()

描述:从结果集中获取单独的列;
语法:string PDOStatement::fetchCloumn([int $cloumn_number = 0]);
参数:$cloumn_number是列的索引值,默认为 “ 0 ” ;

测试:

  1. $recods = $PDOStatement->fetchColumn();
  2. echo "共有{$recods}条记录!";

如果我把参数改成1,所以这个fetchcolumn 还是没搞懂!

  1. $recods = $PDOStatement->fetchColumn(1);
  2. echo "共有{$recods}条记录!";

测试一下 rowcount()

  1. $sql="select * from student order by id desc";
  2. $PDOStatement = $pdo->query($sql);
  3. $records = $PDOStatement->rowcount();
  4. echo "共有{$records}条记录!";

其他:

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