Я бы предложил использовать параметризованный и связанный запрос. Преимущество, выходящее за рамки очевидного, устранения возможности SQL инъекций состоит в том, что вы можете скомпилировать запрос один раз, но каждый раз запускать его много раз с новыми параметрами. Это избавляет базу данных от необходимости выполнять 1000 компиляций запросов и, следовательно, 1000 ненужных циклов передачи на сервер и обратно.
Сначала переместите запрос за пределы l oop и подготовьте его там
$stmt = $db->prepare("INSERT INTO `cdrnew`
(`account_code`, `caller_number`, `callee_number`,
.,.,.,.,.,.,
`action_type`, `source_trunk_name`, `dest_trunk_name`)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
while(($line = fgetcsv($csvFile)) !== FALSE){
$stmt->bind_param('ssssssssssssssssssssssssss',
$line[0], $line[1], $line[2], $line[3], $line[4],
$line[5], $line[6], $line[7], $line[8], $line[9],
$line[10], $line[11], $line[12], $line[13], $line[14],
$line[15], $line[16], $line[17], $line[18], $line[19],
$line[20], $line[21], $line[22], $line[23], $line[24],
$line[25]
);
$stmt->execute();
}
ПРИМЕЧАНИЕ: вы можете добавить некоторую проверку ошибок в этот базовый макет