我正在尝试获取MySQL表的所有行。以下是代码:
$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子句过滤我的记录。
发布于 2017-09-17 08:56:46
您应该添加foreach选项来正确地获取它。只需回显行列如下所示,以显示列的任何内容。
<?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'];
}
?>https://stackoverflow.com/questions/46261733
复制相似问题