Hallo dedlfix,
Quick and dirty fällt mir ein, nicht an ; sondern an ";\n" (oder ";\r\n"), also ein ; mit folgendem Zeilenende, aufzuspalten, wenn du sicher sein kannst, dass diese Kombination nicht in den Daten vorkommt.
Hm... es könnten ja auch mehrere Queries in einer Zeile stehen.
Sonst würde ich einen Parser bauen, der bei Auftreten von " oder ' ein Flag setzt und dann das ; ignoriert, wobei auch noch " und ' beachtet werden müssen.
So etwas in der Art habe ich mir auch schon überlegt. Man könnte auch nach dem Spalten in jeder Zeile die nicht escapten Quotes (') zählen. Wenn die Anzahl ungerade ist, hat man eine Query zerhackt und muss sie dann wieder zusammenbauen...
Scheint auf jeden Fall etwas umständlicher zu werden, wenn's etwas fehlertoleranter sein soll.
P.S. Hast du auch die max_execution_time berücksichtigt?
Hab's im Hinterkopf - so weit bin ich nur noch nicht.
Grüsse
Alex