使用PHP在Mysql中导入CSV文件,但在236行中仅导入214行

时间:2018-08-29 06:11:07

标签: php mysql csv

我必须导入236行的CSV文件。但是仅导入144/213行。 我的服务器仅支持mysql命令。它不支持mysqli。

在此处输入代码

fgetcsv($file);
fgetcsv($file);
while (($getData = fgetcsv($file, 10000, ",")) !== FALSE)
{
$sql = "INSERT into branchiss2 (date,bank_id,branch_id,coa_id,coa_des,amount,is_conv,off_ind,bl1,bl2,fig_ind,data_cat,field_des,bl3,bl4,bl5,bl6,bl7,bl8,bl9) 
values ('".mysql_real_escape_string($getData[0])."','".mysql_real_escape_string($getData[1])."','".mysql_real_escape_string($getData[2])."','".mysql_real_escape_string($getData[3])."','".mysql_real_escape_string($getData[4])."','".mysql_real_escape_string($getData[5])."','".mysql_real_escape_string($getData[6])."','".mysql_real_escape_string($getData[7])."','".mysql_real_escape_string($getData[8])."','".mysql_real_escape_string($getData[9])."','".mysql_real_escape_string($getData[10])."','".mysql_real_escape_string($getData[11])."','".mysql_real_escape_string($getData[12])."','".mysql_real_escape_string($getData[13])."','".mysql_real_escape_string($getData[14])."','".mysql_real_escape_string($getData[15])."','".mysql_real_escape_string($getData[16])."','".mysql_real_escape_string($getData[17])."','".mysql_real_escape_string($getData[18])."','".mysql_real_escape_string($getData[19])."')";

$result = mysql_query($sql);
     }
fclose($file);  

     }

fgetcsv($file); fgetcsv($file); while (($getData = fgetcsv($file, 10000, ",")) !== FALSE) { $sql = "INSERT into branchiss2 (date,bank_id,branch_id,coa_id,coa_des,amount,is_conv,off_ind,bl1,bl2,fig_ind,data_cat,field_des,bl3,bl4,bl5,bl6,bl7,bl8,bl9) values ('".mysql_real_escape_string($getData[0])."','".mysql_real_escape_string($getData[1])."','".mysql_real_escape_string($getData[2])."','".mysql_real_escape_string($getData[3])."','".mysql_real_escape_string($getData[4])."','".mysql_real_escape_string($getData[5])."','".mysql_real_escape_string($getData[6])."','".mysql_real_escape_string($getData[7])."','".mysql_real_escape_string($getData[8])."','".mysql_real_escape_string($getData[9])."','".mysql_real_escape_string($getData[10])."','".mysql_real_escape_string($getData[11])."','".mysql_real_escape_string($getData[12])."','".mysql_real_escape_string($getData[13])."','".mysql_real_escape_string($getData[14])."','".mysql_real_escape_string($getData[15])."','".mysql_real_escape_string($getData[16])."','".mysql_real_escape_string($getData[17])."','".mysql_real_escape_string($getData[18])."','".mysql_real_escape_string($getData[19])."')"; $result = mysql_query($sql); } fclose($file); }

3 个答案:

答案 0 :(得分:0)

由于内存问题,它可能已停止,请在代码的开头添加这2行,希望对您有所帮助或使用phpexcel库。

ini_set("memory_limit","512M");
ini_set('max_execution_time', 0);

答案 1 :(得分:0)

请尝试以下操作: MYSQL LOAD DATA INFILE语句,用于以非常高的速度将文本文件中的行读取到表中

例如:-

$import_query = <<<eof
    LOAD DATA INFILE '$fileName'
     INTO TABLE tableName
     FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\n'
    (column1,column2,column3)
     SET column4 = CURRENT_TIMESTAMP;
eof;

$db->query($import_query);

答案 2 :(得分:0)

您可以将php.ini文件集 max_execution_time 修改为您认为适当的时间。