首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDO在选择大量记录时失败

问PDO在选择大量记录时失败
EN

Stack Overflow用户
提问于 2017-09-17 07:34:02
回答 1查看 223关注 0票数 1

我正在尝试获取MySQL表的所有行。以下是代码:

代码语言:javascript
复制
$sql = "SELECT * FROM my_table";
$connection = new 
PDO('mysql:host=localhost;dbname=dbname;charset=utf8','user', 'password');
$statement =$connection->prepare($sql);
$statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);

my_table表有145个列,有11000条记录。当我运行代码时,它无法获取所有记录。但是当我将$sql更改为SELECT ID FROM my_table或SELECT * FROM my_table LIMIT 4000时,它成功地运行了。

PDO是否有任何获取数据的限制,或者我是否滥用了它?

SLUTION

在检查Apache日志之后,我看到了这个错误:apache weAllowed memory size of 134217728 bytes exhausted。正如@在评论中所说的那样,这是一个记忆问题。因此,我应该选择需要的列,并使用where子句过滤我的记录。

EN

回答 1

Stack Overflow用户

发布于 2017-09-17 08:56:46

您应该添加foreach选项来正确地获取它。只需回显行列如下所示,以显示列的任何内容。

代码语言:javascript
复制
<?php
$connection = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8','user', 'password');
$sql = "SELECT * FROM `my_table`";
$statement =$connection->prepare($sql);
$statement->execute();
$result1 = $statement->fetchAll(PDO::FETCH_ASSOC);
//Re written by Ajmal PraveeN
foreach($result1 as $result){
echo $result['column'];
echo $result['column2'];
}
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46261733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档