我有这个脚本,它应该读取一个大的csv文件并将内容插入数据库(mysql(。我正在从终端ie php index.php运行脚本,但一段时间后,脚本打印出Terminated并停止运行,没有任何合理的错误。我已经把所有这些都添加到了脚本中,但仍然无法完成测试:set_time_limit(0);
ignore_user_abort() ;
ini_set('memory_limit','5120M');
下面是代码的狙击手。NB我刚刚选了一小部分。
<?php
set_time_limit(0);
ignore_user_abort() ;
ini_set('memory_limit','5120M');
echo ini_get("memory_limit")."'n";
$conn = new mysqli("dbase1", "apps", "t3ck", "transactional");
$files = array("/home/username/mycsv.csv");
foreach($files as $file){
echo "----------------------------------------------------------------------------------$file--------------------------------------------'n";
$rows = array_map('str_getcsv', file($file));
$csv = array();
$array = explode(".",$file);
$name = $array[0];
//$service = getserviceId($name);
foreach ($rows as $row) {
$conn->query("INSERT INTO transactions (foreign_key, model, created, modified) VALUES (NULL, NULL, now(), now());");
$count = $conn->insert_id;
echo "TRX id: $count 'n";
$no= $row[0];
$net = "FDO";
$query = "insert ignore into text_gf services_id,no,net,sub_date,transactions_id,created,last_delivery_date) VALUES(118,$no,$net,now(),$count,now(),now())";
$res =$conn->query($query);
if($res) {
echo "$msisdn saved 'n";
} else {
print_r($conn->error);
die();
}
}
unlink($file);
}
您调用die();
,在这里您的进程停止,没有任何消息。
else {
print_r($conn->error);
die();
}
很抱歉提出这个愚蠢的问题。有人添加了一个每5分钟运行一次的cronjob,它会杀死所有php进程。即CCD_ 3。
我猜"Terminated"消息是由脚本通过最长执行时间引起的,您可以尝试通过在PHP中设置它来增加执行时间。
ini_set('max_execution_time', 600); //600 seconds = 10 minutes