$handle = fopen ("uploads/haendler_deutschland.csv","r");
while ($data = fgetcsv ($handle, 1000, ";"))
{
$query = "INSERT INTO brd(id
,name
,strasse
,plz
) VALUES('', '".$data[1]."', '".$data[2]."', '".$data[3]."')";
$result = mysql_query($query) or die("Invalid query: " . mysql_error().__LINE__.__FILE__);
$row++;
}
fclose ($handle);
1.) Wie lautet die Fehlermeldung genau?
2.) Die Schleife ist uncool und belastet den Datenserver unnötig.
3.) Lade das CSV und prüfe die Daten per Schleife auf Integrität, also ob mandatorische numerische Inhalte auch numerisch sind und ob der Dezimaltrenner stimmt und die Anzahl der Datenfelder.
4.) Mache erst im Erfolgsfall ein http://dev.mysql.com/doc/refman/5.0/en/load-data.html - prüfe auch hier die Fehlermeldungen und stelle sicher (über einen Flöag?), dass Du die Daten wieder sauber löschen kannst, falls ein Fehler auftrat.
Du siehst das Problem besteht eigentlich daran den Importerfolg der Daten "transaktional" sicherzustellen.