php内存限制不能修改

标签 php mysql memory

我有一个从数据库加载数据的 php 脚本。 我从中加载数据的表有 50mb,当前的 php 内存设置允许 128mb - 我仍然收到错误消息

Allowed memory size of 134217728 bytes exhausted (tried to allocate 6 bytes)

一些研究让我改变了 php.ini 中的以下内容:

memory_limit = 128M

我将其更改为 -1,根据 documentation将其设置为无限。无济于事。

即使查询返回了所有 50mb,它也不应该提示,因为限制设置为 128mb 不仅没有意义 - 奇怪的是,我运行的查询甚至不需要太多内存:当我回显它时直接在数据库中运行它,它只返回三行。查询如下所示:

SELECT * FROM table WHERE foreign_id=1

有谁知道如何解决这个问题?我想将内存限制设置为无限。

编辑 1

首先 - 我从终端而不是浏览器运行脚本有关系吗?

其次,这是 php 代码:

//Connect to database
$user="root";
$databasePassword="password";
$host="127.0.0.1";
$database="primarydata";
$identifier=mysql_connect($host,$user,$databasePassword,true);
$db1=mysql_select_db($database);

//Select * from first table
$query="SELECT id,name,city,country FROM table1 WHERE id>=1 ORDER BY id ASC";
$result=mysql_query($query);
$datas=array();
while($row=mysql_fetch_object($result)) $datas[]=(object) $row;

//Loop through artists
for($i=0;$i<sizeof($datas);$i++){
    for($j=$i+1;$j<sizeof($datas);$j++){
        //This is where the problem occurs
        $query="SELECT * FROM table2 WHERE data_id=".$datas[$i]->id;
    }
}

第三,我必须使用“--enable-memory-limit”吗?

最佳答案

尝试:

ini_set('memory_limit','-1')

当我将数百万个条目插入数据库(示例)时,我遇到了与您相同的问题。这个有帮助。

编辑:添加,不推荐使用它(例如,仅在本地主机上我给你的例子,将大量示例数据输入数据库等)这个答案是在你发布你的 php 代码之前发布的......

关于php内存限制不能修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815781/

相关文章:

javascript - ajax 加载后图像不会立即显示

php - 如何获得 if 条件下得到的值的总和

java - 为什么我的程序越来越慢?

c# - LINQ 的左外连接运行时错误

android - 在 Android 中释放资源

c++ - 分配派生类时使用现有的基类对象

按区域设置的 PHP 格式日期(分隔符,顺序不是文本)

php - 当它应该是内联时,标题上方的 Wordpress 正文

php - 为用户创建限制发帖

java - 带有 h2 嵌入式数据库的 MySQL LONGTEXT