允许的内存大小为134217728字节耗尽(试图分配36个字节)

时间:2016-01-13 10:11:26

标签: php

任何人都可以帮我解决这个错误! "允许的内存大小为134217728字节耗尽(试图分配36个字节)"

当我从所有可用课程的数据库表中获取记录时,会发生此错误(总课程数为84)。
我的职能是: -

function allCouses()
{
    include 'connect.php';
    $qry = "SELECT * FROM master_course WHERE mc_enabled=1 AND mc_deleted=0";
    $data = mysqli_query($con, $qry);
    if(mysqli_num_rows($data))
    {
        $record = mysqli_fetch_assoc($data);
        while($record)
            $course[]=$record;
        return $course;
    }
}

发生错误当我将所有记录存储在$course[]

1 个答案:

答案 0 :(得分:3)

你正在循环,错误的是, 并编写了一个无限循环 ,你需要在while循环中的mysqli_fetch_assoc来读取结果集中的所有行。

function allCouses()
{
    include 'connect.php';
    $qry = "SELECT * FROM master_course WHERE mc_enabled=1 AND mc_deleted=0";
    $data = mysqli_query($con, $qry);

    while ($record = mysqli_fetch_assoc($data) ) {
        $course[]=$record;
    }
    return $course;
}

最好在脚本主体中建立数据库连接,然后将$con作为参数传递给需要它的每个函数。相比之下,建立连接的过程非常缓慢,因此您只希望每个脚本执行一次。

<?php
function allCouses($con)
{
    $qry = "SELECT * FROM master_course WHERE mc_enabled=1 AND mc_deleted=0";
    $data = mysqli_query($con, $qry);

    while ($record = mysqli_fetch_assoc($data) ) {
        $course[]=$record;
    }
    return $course;
}



include 'connect.php';

$courses = allCourses($con);
相关问题