0
我建立这需要执行这个SQL语句块:致命错误“允许用尽134217728个字节的内存大小...”
$sql = 'SELECT c.fullname AS CourseName, from_unixtime(l.time) AS DateandTime, u.username AS Username,
l.ip AS IPAddress, u.firstname AS FirstName, u.lastname AS LastName, u.email AS Email, l.module As Activity,
l.action As Action, l.url As URL, l.info AS Information, r.roleid AS RoleID, l.userid AS UserID, c.id as CourseID
FROM {log} l, {user} u, {role_assignments} r, {course} c
WHERE r.userid = l.userid AND c.id = ' . $courseid;
if($Flag == 0)
{
$sql = $sql . " ORDER BY DateandTime Desc";
}
elseif($Flag == 1)
{
$sql = $sql . " ORDER BY Username Asc";
}
其中“$ courseid”是所选课程ID。执行时,Moodle是返回此错误消息:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2048 bytes) in D:\Moodle\lib\weblib.php on line 1277
我没有使用这个PHP命令:
现在ini_set('memory_limit', '-1');
修改SQL语句后,我收到此错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 925 bytes) in D:\Moodle\lib\dml\moodle_database.php on line 842
而当刷新页面,我会得到这个错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 528 bytes) in D:\Moodle\lib\dml\mysqli_native_moodle_database.php on line 1022
但我知道这不是一个解决方案。
任何人都可以帮助我,我将不胜感激?
在此先感谢。
此致
艾哈迈德
这些都是细小的分配,所以我认为你真正的问题是在其他地方(什么是使用所有可用内存的机器上) – Dave
喜戴夫,感谢您的回复;从这个SQL语句生成的总记录是21559,正如我在MySQL Workbench上所做的那样。有什么建议么?提前致谢。 –
逐行处理记录,并且不要在同一时间将它们存储在内存中。 –