我正在使用php脚本将数组的唯一值插入数据库。这是剧本
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if(isset($_POST['submit']))
{
$df = $_POST['df'];
$arr = Array();
$file = fopen('files/'.$df.'.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
$arr[] = $line[2];
}
$arruniq = array_unique($arr);
fclose($file);
$arr_count = count($arr);
$time = strtotime(date_default_timezone_get());
$ts = date("Y-m-d H:i:s", $time);
$mysqli = new mysqli("localhost","root","pass","tab");
if($mysqli === false){
die("ERROR: DB could not connect. ");
}
$sqlins = "insert into tab (created_time, uniq_id) values (?, ?);";
for ($i=0; $i < $arr_count; $i++)
{
if($stmt = $mysqli->prepare($sqlins))
{
$stmt->bind_param("ss", $ts, $arruniq[$i]);
$stmt->execute();
}
else
{
echo "ERROR: Could not prepare query";
}
}
$mysqli->close();
}
该脚本正在读取一个csv文件,使这些值唯一并插入数据库。这是问题所在,如果文件较小,脚本会运行良好,但是如果我使用较大的文件,则会出现此“ 500内部服务器错误”。 服务器php日志以及apache日志中没有显示或记录任何错误。 通过使用ini_set('memory_limit','2048M'),我什至增加了脚本的执行时间和脚本的内存限制。和max_execution_time标头,这些标头也不起作用。 任何想法将是有帮助的!