这里有新鲜出炉的 PHP 设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 使用 PDO 获取结果集的方法, 结合实例形式分析了 PDO 获取结果集的常用函数与相关使用技巧, 需要的朋友可以参考下
本文实例讲述了 php 使用 PDO 获取结果集的方法。分享给大家供大家参考,具体如下:
fetch() 方法
fetch() 方法用于获取结果集的下一行,语法如下:
- mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])
参数 fetch_style 控制结果集的返回方式
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()
PDO::FETCH_BOUND-- 以布尔值的形式返回结果,同时获取的列值赋给 bindParam() 方法中的指定变量。
PDO::FETCH_LAZY-- 以关联数组、数字索引数组和对象 3 种形式返回结果
cursor_orientation:PDOStatement 对象的一个滚动游标,可用于获取指定的一行。
cursor_offset: 游标的偏移量
例如:
在 PDO 中通过预处理语句 prepare() 和 execute() 执行 SQL 查询语句,并且应用 while() 语句和 fetch() 方法完成数据的循环输出
- $dbms = 'mysql'; //数据库类型
- $dbName = 'admin'; //使用的数据库
- $user = 'root'; //数据库连接用户名
- $pwd = 'password'; //数据库连接密码
- $host = 'localhost'; //数据库主机名
- $dsn = "$dbms:host=$host;port=3306;dbname=$dbName";
- try {
- $pdo = new PDO($dsn, $user, $pwd); //初始化一个PDO对象,就是创建了数据库连接对象$pdo
- $query = "select * from user"; //需要执行的sql语句
- $res = $pdo - >prepare($query); //准备查询语句
- $res - >execute();
- while ($result = $res - >fetch(PDO: :FETCH_ASSOC)) {
- echo $result['id']." ".$result['username']." ".$result['password'].'<br>';
- }
- } catch(Exception $e) {
- die("Error!:".$e - >getMessage().'<br>');
- }
运行结果为:
- 1 107lab e10adc3949ba59abbe56e057f20f883e
- 4 admin 123456
- 5 admin 123456
fetchAll() 方法
fetchAll() 方法用于获取结果集中的所有行,其返回值是一个包含结果集中所有数据的二进制数组。语法如下:
- array PDOStatement::fetchAll([int fetch_style[,int column_index]])
参数说明:
fetch_style:控制结果集中数据的显示方式。
column_index: 字段的索引。
例如:
- $dbms = 'mysql'; //数据库类型
- $dbName = 'admin'; //使用的数据库
- $user = 'root'; //数据库连接用户名
- $pwd = 'password'; //数据库连接密码
- $host = 'localhost'; //数据库主机名
- $dsn = "$dbms:host=$host;port=3306;dbname=$dbName";
- try {
- $pdo = new PDO($dsn, $user, $pwd); //初始化一个PDO对象,就是创建了数据库连接对象$pdo
- $query = "select * from user"; //需要执行的sql语句
- $res = $pdo - >prepare($query); //准备查询语句
- $res - >execute();
- $result = $res - >fetchAll(PDO: :FETCH_ASSOC);
- print_r($result);
- } catch(Exception $e) {
- die("Error!:".$e - >getMessage().'<br>');
- }
运行结果为:
- Array
- (
- [0] => Array
- (
- [id] => 1
- [username] => 107lab
- [password] => e10adc3949ba59abbe56e057f20f883e
- )
- [1] => Array
- (
- [id] => 4
- [username] => admin
- [password] => 123456
- )
- [2] => Array
- (
- [id] => 5
- [username] => admin
- [password] => 123456
- )
- )
此时可以通过 foreach 来遍历这个二维数组
- foreach($result as $val) {
- echo $val['username'].'<br>';
- }
运行结果为:
- 107lab
- admin
- admin
fetchColumn() 方法
fetchColumn() 方法获取结果集中下一行指定列的值,语法如下:
- string PDOStatement::fetchColumn([int column_number])
可选参数 column_number 设置行中列的索引值,该值从 0 开始。如果省略该参数则将从第 1 列开始取值
例如:
通过 fetchColumn() 方法获取结果集中下一行中指定列的值。(或第一列 id 的值)
- $dbms = 'mysql'; //数据库类型
- $dbName = 'admin'; //使用的数据库
- $user = 'root'; //数据库连接用户名
- $pwd = 'password'; //数据库连接密码
- $host = 'localhost'; //数据库主机名
- $dsn = "$dbms:host=$host;port=3306;dbname=$dbName";
- try {
- $pdo = new PDO($dsn, $user, $pwd); //初始化一个PDO对象,就是创建了数据库连接对象$pdo
- $query = "select * from user"; //需要执行的sql语句
- $res = $pdo - >prepare($query); //准备查询语句
- $res - >execute();
- echo $res - >fetchColumn(0).'<br>';
- echo $res - >fetchColumn(0).'<br>';
- echo $res - >fetchColumn(0).'<br>';
- } catch(Exception $e) {
- die("Error!:".$e - >getMessage().'<br>');
- }
运行结果为:
- 1
- 4
- 5
希望本文所述对大家 PHP 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0809/340528.html