Em vez de escrever um script para obter informações de um arquivo CSV, você pode vincular MYSQL diretamente a ele e fazer upload das informações usando a seguinte sintaxe SQL.
Para importar um arquivo Excel para o MySQL, primeiro exporte-o como um arquivo CSV. Remova os cabeçalhos CSV do arquivo CSV gerado junto com os dados vazios que o Excel pode ter colocado no final do arquivo CSV.
Você pode então importá-lo para uma tabela MySQL executando:
load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)
conforme lido em: Importar arquivo CSV diretamente para o MySQL
EDITAR
Para o seu caso, você precisará escrever um interpretador primeiro, para localizar a primeira linha e atribuí-los como nomes de coluna.
EDIT-2
Da documentação do MySQL sobre LOAD DATA
sintaxe :
A IGNORE number LINES
opção pode ser usada para ignorar as linhas no início do arquivo. Por exemplo, você pode usar IGNORE 1 LINES
para pular uma linha de cabeçalho inicial contendo nomes de coluna:
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
Portanto, você pode usar a seguinte declaração:
LOAD DATA LOCAL INFILE 'uniq.csv'
INTO TABLE tblUniq
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(uniqName, uniqCity, uniqComments)