Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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/8/mysql/60.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 将csv文件中的大数据插入数据库_Php_Mysql_Csv_Client Side - Fatal编程技术网

Php 将csv文件中的大数据插入数据库

Php 将csv文件中的大数据插入数据库,php,mysql,csv,client-side,Php,Mysql,Csv,Client Side,我正在使用csvreader.php来处理这项工作。所以问题是,当我尝试在localhost中上载30k行的文件时,脚本工作正常,但当我使用ipage host时,30秒后会出现内部服务器错误。 这是我正在使用的代码: $result = $this->csvreader->parse_file('/downloads/test.csv);//path to csv file $this->admin_model->add_csv($result); public fu

我正在使用csvreader.php来处理这项工作。所以问题是,当我尝试在localhost中上载30k行的文件时,脚本工作正常,但当我使用ipage host时,30秒后会出现内部服务器错误。 这是我正在使用的代码:

$result = $this->csvreader->parse_file('/downloads/test.csv);//path to csv file
$this->admin_model->add_csv($result);
public function add_csv($data)
    {
        $this->db->insert_batch('my_contacts', $data); 
    }
这就是我使用的模型:

$result = $this->csvreader->parse_file('/downloads/test.csv);//path to csv file
$this->admin_model->add_csv($result);
public function add_csv($data)
    {
        $this->db->insert_batch('my_contacts', $data); 
    }
正如我之前所说的,该脚本在localhost(超过30k行)和ipage上都可以正常工作,但只要行数少于1k即可。
那么,我如何才能让这个脚本像localhost一样在ipage上工作呢?如果它在30秒后死亡,几乎可以肯定是服务器超时。检查php.ini和服务器配置设置


在过去,我必须批量处理非常大的DB insert作业,在这些作业中,导入、转换和写入的开销很高。

如果CSV数据是安全的,并且您确定没有安全风险,请尝试使用MySQL命令:
内联加载数据


导入大型CSV文件的速度非常快。

由于CSV文件太大,文件执行时间可能太长

尝试增加页面的最大执行时间设置,例如,在页面顶部添加以下内容

ini_set('max_execution_time', 300);

注意,300指的是300秒或5分钟。

我确实做到了,我修改了php.ini,我做到了:

Max_input_time  = -1 // unlimited
Max_execution_time = -1 // unlimited
Memory_limit = 258M
我尝试了max_execution_time=1000,但它不起作用,在我设置了这些参数之后,它就起作用了。
谢谢大家

解决这类问题最可靠的方法是分步实施。i、 不要试图在一次执行中添加所有记录

您的CSV文件有许多行,每行都应该是数据库中的一行。让它像分页一样,在每一页中,我们可以说,它将插入15行


换句话说,从读取CSV文件开始,对其内容进行分页,然后插入这些内容,然后使用任何重定向技术(我更喜欢使用javascript)重定向到下一页

0=unlimited,而不是-1,所有的php设置都应该小写在基于web的php脚本(由apache运行)中使用unlimited执行时间是一个非常糟糕的主意。