Php 在“查询结果”中选择查询结果;内存不足的致命错误“;
这是我的select语句,它非常简单。它从不同的表中选择数据和blob。但这是回报: 致命错误:内存不足(已分配1310720)(尝试分配10221840字节) 我读过几篇文章,说我应该增加Php 在“查询结果”中选择查询结果;内存不足的致命错误“;,php,mysql,pdo,out-of-memory,Php,Mysql,Pdo,Out Of Memory,这是我的select语句,它非常简单。它从不同的表中选择数据和blob。但这是回报: 致命错误:内存不足(已分配1310720)(尝试分配10221840字节) 我读过几篇文章,说我应该增加max\u allowed\u packet,但后来就没用了。如有任何建议,将不胜感激 更新 将php.ini中的内存限制=128M更改为内存限制=256M $chk = $dbh->prepare("SELECT * FROM af_rpta_faas_land_notapproved AS t1
max\u allowed\u packet
,但后来就没用了。如有任何建议,将不胜感激
更新
将
php.ini中的内存限制=128M
更改为内存限制=256M
$chk = $dbh->prepare("SELECT * FROM af_rpta_faas_land_notapproved AS t1 ,af_rpta_faas_land_notapproved_address AS t2 ,af_rpta_faas_land_notapproved_approval AS t3 ,af_rpta_faas_land_notapproved_boundaries AS t4,af_rpta_faas_land_notapproved_ownerinfo AS t5 ,af_rpta_faas_land_notapproved_references AS t6 ,af_rpta_faas_land_notapproved_status AS t7 ,af_rpta_faas_land_not_approved_aprroval_files AS t8,af_rpta_faas_land_not_approved_valuation AS t9 WHERE t1.pin = :pin AND t1.status = :active AND t2.pin = :pin AND t2.status = :active AND t3.pin = :pin AND t3.status = :active AND t4.pin = :pin AND t4.status = :active AND t5.pin = :pin AND t5.status = :active AND t6.pin = :pin AND t6.status = :active AND t7.pin = :pin AND t7.status = :active AND t8.pin = :pin AND t8.status = :active AND t9.pin = :pin AND t9.status = :active ");
$chk->bindValue(":pin", $pin, PDO::PARAM_STR);
$chk->bindParam(":active", $propertystatus, PDO::PARAM_STR);
if ($chk->execute())
{
echo $chk->rowCount();
}
至:
[mysqldump]
quick
max_allowed_packet = 16M
在my.ini中,为什么要执行两次查询?我认为不是因为我在条件中有这个查询,所以如果条件满足,它将运行,如果不满足,它将不运行。我有一个问题,如果是这样的话,我如何检查查询是否运行了多次?您正在运行多次。代码是这样说的。if($chk->execute()){echo$chk->execute();}
max\u packet\u size
无法解决您的问题<代码>内存限制
将显示。而且,在我看来,你只是简单地交叉连接所有这些表,这将导致一个可怕的庞大的结果集。您需要在联接上包括一些关系条件,否则您的结果是每个表中的总行数乘以在一起。我的坏消息是我已经编辑了它,它应该是rowcount
[mysqldump]
quick
max_allowed_packet = 32M