Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将大型数据从Mysql加载到阵列中的最佳方法_Php_Mysql - Fatal编程技术网

Php 将大型数据从Mysql加载到阵列中的最佳方法

Php 将大型数据从Mysql加载到阵列中的最佳方法,php,mysql,Php,Mysql,我试图将大量数据从Mysql加载到阵列,但我们的服务器内存限制太低,无法实现。我可以增加这个限制,但我想这不是解决办法。我需要更好的解决办法。。某种类型的循环或什么 我的实际代码: 使用mysql\u unbuffered\u query()将改善我的情况,但一点也没有 实际上我正在加载大约1000行 更新 我在服务器上设置了128 mb内存。因此,如果我尝试获取21mb数据,它将失败…如果可以,您应该这样做。它们不再得到维护,而是在使用。相反,请学习使用PDO,为什么要创建一个数组来保存这些数

我试图将大量数据从Mysql加载到阵列,但我们的服务器内存限制太低,无法实现。我可以增加这个限制,但我想这不是解决办法。我需要更好的解决办法。。某种类型的循环或什么

我的实际代码: 使用mysql\u unbuffered\u query()将改善我的情况,但一点也没有

实际上我正在加载大约1000行

更新
我在服务器上设置了128 mb内存。因此,如果我尝试获取21mb数据,它将失败…

如果可以,您应该这样做。它们不再得到维护,而是在使用。相反,请学习使用PDO,为什么要创建一个数组来保存这些数据,您不能只运行将要使用这些数据来代替数组加载代码的代码吗?您的内存限制设置为什么?1000行不是一个大数字!我有128M内存限制。我正在创建一个数组,因为下一次我使用json_encode($response);将查询更改为
SELECT`code`,`name` FROM$table
,只获取所需数据,而不是多个不必要的列。如果可以,您应该。它们不再得到维护,而是在使用。相反,请学习使用PDO,为什么要创建一个数组来保存这些数据,您不能只运行将要使用这些数据来代替数组加载代码的代码吗?您的内存限制设置为什么?1000行不是一个大数字!我有128M内存限制。我正在创建一个数组,因为下一次我使用json_encode($response);如果您将查询更改为
SELECT`code`,`name` FROM$table
,只获取所需数据,而不是多个不必要的列,则还可以减少内存需求。
        $sql = "SELECT * FROM $tables";
        
        $response = array();
        $result = mysql_unbuffered_query( $sql );
        while( $row=mysql_fetch_array( $result )) 
        { 
            $response[] = (
                array(
                    "id" => $row['code'], 
                    "name" => $row['name']
                )
            );
        
        
        } 
$sql = "SELECT 'code','name' FROM $tables";
            
            $response = array();
            $result = $this->con->prepare($sql);
                echo self::convert(memory_get_usage(true)); // 512kb
            $result->execute();
                echo self::convert(memory_get_usage(true)); // 21.25 mb
            $array = $result->fetchAll();
            // here script fails -> due to out of memory
            foreach($array as $key => $row) {
                $response[] = (
                    array(
                        "id" => $row['code'], 
                        "name" => $row['name']
                    )
                );