任何人都可以帮我解决这个错误!
"允许的内存大小为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[]
。
答案 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);