PHP超时错误500

时间:2014-05-28 14:21:09

标签: php mysql sql

我有一个带有SQL指令'TRUNCATE和INSERT'的数组,该程序集是从txt文件中检索的。

截断和插入过程是在6个表上进行的,问题是其中一个表将接收110,000条记录。

我做了一些测试:

第1 http://pastebin.com/egbnbfVa

短语......错误:MySQL服务器已经消失

错误编号2006 ...

第二http://pastebin.com/tfF7ZaVd

这...... 500错误

4 个答案:

答案 0 :(得分:1)

我认为你的脚本太长而无法执行。如果你不能优化你的脚本,请检查php日志并更改execution_time

答案 1 :(得分:1)

在这段代码中思考:

<?php
   $configuration = array(
        'mysql-user'    => 'username',
        'mysql-password'    => 'password',
        'mysql-host'    => '127.0.0.1',
        'mysql-database'    => 'database',
   );

   $mysqli = mysqli_connect($configuration["mysql-host"], $configuration["mysql-user"], $configuration["mysql-password"], $configuration["mysql-database"]) or die("Error " . mysqli_error($link));
   $mysqli->set_charset("utf8");

并在您的第二段代码中出现错误

ERROR:

for($i=0;i<count($sql_prod_s_saida_inARR);$i++)

正确:

for( $i = 0; $i < count($sql_prod_s_saida_inARR); $i++ )

一个建议,如果你有110k的记录,那就是部分地做出来的,例如10k的记录。

答案 2 :(得分:0)

您可以在脚本中设置时间限制。你可以使用它来将其设置为无限制:

set_time_limit ( 0 )

答案 3 :(得分:0)

主要原因还在于每次插入后表格将重新索引。 你可以通过交易来阻止这个,如果我是正确的,这将提高你的速度超过100倍:D