为编程爱好者分享易语言教程源码的资源网

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

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

三叶资源网 2022-11-09 19:18:50 其它综合 1141 ℃ 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
定义数据类型软件加密京医通黑月界面类失败代码自动同意进群百度贴吧签到取启动时间QQ资料照片墙上传2345签到内存操作移动咪咕RC4算法同步应用PPT采集预览skinsharp文本操作协程模块微信公众号通用型哈希表iiilab视频解析
最新评论