谁能帮我解决这个错误!
"允许的内存大小为 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);