mysqli_query单查询gerenating PHP致命错误:允许的内存大小已耗尽

mysqli_query单查询gerenating PHP致命错误:允许的内存大小已耗尽,php,windows,mysqli,memory-leaks,xampp,Php,Windows,Mysqli,Memory Leaks,Xampp,我有一个Mysql表(名为“base”),包含300万条记录,它只由3个int(10)字段组成 当我尝试运行这个简单查询时,$result=mysqli_query($db,'SELECT*FROM base'),php显示错误: PHP致命错误:允许的内存大小134217728字节已用尽 (试图分配10485768字节)在上的C:\xampp\htdocs\combina.php中 第17行 我认为mysqli_查询不应该将所有表记录加载到内存中,对吗 那么为什么内存会溢出呢 我正在Wind

我有一个Mysql表(名为“base”),包含300万条记录,它只由3个int(10)字段组成

当我尝试运行这个简单查询时,$result=mysqli_query($db,'SELECT*FROM base'),php显示错误:

PHP致命错误:允许的内存大小134217728字节已用尽 (试图分配10485768字节)在上的C:\xampp\htdocs\combina.php中 第17行

我认为mysqli_查询不应该将所有表记录加载到内存中,对吗

那么为什么内存会溢出呢

我正在Windows 10、PHP 7.2上使用XAMPP安装。

代码如下:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "comb";

$db = mysqli_connect($servername, $username, $password, $dbname);
if (!$db) {
    die("Falha na conexão: " . mysqli_connect_error());
}
$result = mysqli_query($db, 'SELECT * FROM base');

我研究并意识到
mysqli\u query
命令实际上将所有记录加载到RAM中。也就是说,对于大型表,它实际上会产生内存限制

我找到的解决方案是组合使用(这将激活查询,而不加载RAM中的所有记录),(这将返回未缓冲的结果对象),最后将逐行读取结果

通过这种方式,所提出问题的解决方案或多或少是:

$db = mysqli_connect($servername, $username, $password, $dbname);
mysqli_real_query($db, 'SELECT * FROM base');
$result = mysqli_use_result($db);
while ($row = mysqli_fetch_row($result)) {
    ...

文件中唯一的代码是
$result=mysqli_query($db,'SELECT*FROM base')
?我现在添加了问题中的代码。但是没有
获取
?错误正好发生在
mysqli_query($db,'SELECT*FROM base')
行。我不理解您的问题。您没有获取结果对象吗?