很多时候执行select查询语句不仅仅是为了获取数据库几条数据信息或者几个字段信息,有时只需要某列信息,但又必须查询多个字段。那PDO扩展中有哪些可以获取数据信息的方法呢?它们分别可以获取什么信息?
1、columnCount():获取结果集中的列数
<?php header('content-type:text/html;charset=utf-8'); try{ $pdo=new PDO('mysql:host=localhost;dbname=test','root','root'); $sql="select * from test_pdo where id<20"; $stmt=$pdo->prepare($sql); $stmt->execute(); echo $stmt->columnCount(); }catch(PDOException $e){ echo $e->getMessage(); }
2、fetchColumn()从结果集中的下一行返回单独的一列
从结果集中的下一行返回单独的一列,以0开始的索引(索引不能超过列数减1),也就是说fetchColumn()返回的值只有一个,而且,索引值不同,返回的值所对应的列也不一样
<?php header('content-type:text/html;charset=utf-8'); try{ $pdo=new PDO('mysql:host=localhost;dbname=test','root','root'); $sql="select * from test_pdo where id<20 order by id asc"; $stmt=$pdo->prepare($sql); $stmt->execute(); var_dump($stmt->fetchColumn(0)); var_dump($stmt->fetchColumn(1)); var_dump($stmt->fetchColumn(2)); var_dump($stmt->fetchColumn(3)); }catch(PDOException $e){ echo $e->getMessage(); }
数据表数据:
3、debugDumpParams()打印一条 SQL 预处理命令
debugDumpParams()打印一条 SQL 预处理命令
直接打印出一条预处理语句包含的信息。提供正在使用的 SQL 查询、所用参数(Params)的数目、参数的清单、参数名、用一个整数表示的参数类型(paramtype)、键名或位置、值、以及在查询中的位置(如果当前 POD 驱动不支持,则为-1)。
此为一个用于调试的功能,在正常输出的情况下直接输出数据。
<?php header('content-type:text/html;charset=utf-8'); try{ $pdo=new PDO('mysql:host=localhost;dbname=test','root','root'); $sql="INSERT test_pdo(username,password,email) VALUES(?,?,?)"; $stmt=$pdo->prepare($sql); $stmt->bindParam(1,$username,PDO::PARAM_STR); $stmt->bindParam(2,$password,PDO::PARAM_STR); $stmt->bindParam(3,$email); $username='testuser111111'; $password='123456'; $email='testuser11@qq.com'; $stmt->execute(); $stmt->debugDumpParams(); }catch(PDOException $e){ echo $e->getMessage(); }