我收到以下错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 220 bytes)
我正在与php 5.4
和合作sql Anywhere 11
。
解决方案是根据此方法放入ini_set('memory_set',-1);
my php-file
,但是这样做之后,我又遇到了另一个错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3 bytes)
编辑:我的代码是
<?php
ini_set('memory_set',-1);
$connect = sasql_connect("UID=username;PWD=pass");
echo "Connection succeed";
$result = sasql_query($connect, "SELECT * FROM table1, table2");
if(!$result){
echo "sasql_query failed";
return 0;
} else {
echo "query completed successfully\n";
sasql_result_all($result);
}
sasql_close($conn);
?>
我希望有一个人可以帮助我。
解决方案:我找到了解决方案:我添加了WHERE (columnName1 = columnName2)
,拆分结果,并且可以相对快速地再次运行!
<?php
$connect = sasql_connect("UID=username;PWD=pass");
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$results_page = 100;
$start_from = ($page-1) * $results_page + 1;
$result = sasql_query($connect, "SELECT TOP $results_page START AT $start *
FROM table1, table2 WHERE (columnName1 = columnName2)");
if(!$result){
echo "sasql_query failed";
return 0;
} else {
echo "query completed successfully\n";
sasql_result_all($result);
}
sasql_close($conn);
?>
当然我要加php-page
一个<a href="<?php echo $page -1; ?>">Previous</a>
和一个<a href="<?php echo $page + 1; ?>">Next</a>
谢谢大家的帮助!
你应该用
ini_set("memory_limit",-1);
而不是“ memory_set”。另外,请注意以下事项:https ://stackoverflow.com/a/5263981/2729140(Suhosin扩展名具有其自己的内存限制设置)。
如果您的脚本需要大量内存,则应尝试对其进行修改。要注意的一件事是无限的SQL查询。
您的表可以有很多记录,因此始终限制查询是明智的。如果需要从表中获取所有记录,则应使用LIMIT ... OFFSET
SQL构造按页进行操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句