Третий параметр в fgetcsv это символ разделителя, непонятно зачем там запятая, а потом ты еще раз делаешь explode(';',,. Если у тебя разделитель ; то сразу его и укажи. Уменьши количество запросов, в одном инсерте может быть сколько угодно строк.
Ну и сложно представить что непонятного в этом запросе)
LOAD DATA INFILE 'data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;