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


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

谁能帮我解决这个错误!
"允许的内存大小为 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[]中时发生错误。

你正在循环,嗯,错误的事情,并且编写了一个无限的while循环,你需要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);
相关文章: