为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 网络编程 > 其它综合 正文

PDO查询数据的fetch和fetchAll方法比较

三叶资源网 2022-11-09 19:18:50 其它综合 190 ℃ 0 评论

从数据库查询数据时,PDO的方法有fetch和fetchAll,如果数据不是很多的话,两者的效率都差不多,但是如果数据很大时,fetch的效率明显要高于fetchAll,不过fetch一次只 能查询一条数据,那么是不是必须使用fetchAll呢,其实不 不是的。具体可以这么操作,就是一条一条循环绑定数据,并且通过execute执行预处理语句,同时使用fetch进行查询,最后再把查询到的单条数据,添加到一个数组里,结果就与 fetchAll查询的效果一样了。

如果是查询表里的所有数据,而没有其他附加查询条件时,fetchall与fetch的效率差不多,fetchall略微会快一点点。

例1(有条件查询表里的部分数据):

//* 绑定参数的函数

function bind( $stmt, $arr ){

if( !is_array( $arr ) )

$stmt->bindValue( 1, $arr, 1 );

else{

$n = 1;

foreach( $arr as $v ){

$x = 1;

if( is_numeric( $v ) )

$x = 2;

$stmt->bindValue( $n++, $v, $x );

}

}

$stmt->execute();

}

$arr = range( 1, 40000 );

shuffle( $arr );

//* 查询25000条数据

$arr = array_splice( $arr, 0, 25000 );

//* 根据id来查询数据

$sql = 'Select * from 表名 where id=?';

$stmt = $con->prepare( $sql );

$res = array();

foreach( $arr as $v ){

bind( $stmt, $v );

$res[] = $stmt->fetch(2);

}

print_r( $res );

例2(无条件查询表里的所有数据):

$sql = 'Select * from 表名';

$stmt = $con->prepare( $sql );

$res = array();

$stmt->execute();

//* 使用fetch的方法

while($r = $stmt->fetch(2)){

$res[] = $r;

}

//* 使用fetchall的方法

//* $res = $stmt->fetchall(2);

print_r( $res );

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
易语言源码位图斜切喊麦CryptoJS加密模块Vmprotect多关键词筛选易语言版本易语言例程腾讯滑块识别获取控制台应用返回值文件编码检测goproxy微信域名拦截多线程PING一键备份模拟CMOS集成电路易包YY关注Sign计算
最新评论