dedlfix: Max. Befehle pro MySQL-Query

Beitrag lesen

echo $begrüßung;

Ich habe hier ca. 2000 SQL-Queries (alles INSERT). Wenn ich die alle in einen PHP-String packe und den dann ausführe, erhalte ich eine Fehlermeldung. Selber String in eine Datei und dann als MySQL-Batch über die Kommandozeile ist kein Problem. Genausowenig, wie das einzelne Ausführen jeder Zeile.

Das ist richtig so, verarbeitet doch die MySQL-API-Funktion mysql_query() per Default nur ein Statement. Möchte man mehrere verarbeiten muss man C API Handling of Multiple Statement Execution beachten.

PHP hat das in der mysqli-Extension umgesetzt mit mysql_multi_query() umgesetzt.

Diese Vorgehensweise verhindert bei SQL-Injection-Lücken die Ausführung eines zweiten, vom Programmierer nicht beabsichtigten Statements. Allerdings bleibt auch mit einem Statement noch genügend Schadenspotenzial vorhanden, so dass das kein Freibrief ist, auf SQL-Injection-Vorsorge zu verzichten.

Wieviele SQL-Queries kann ich denn in eine Variable packen? Bzw. Wie lang darf die werden?

Die Variablenlänge ist nicht begrenzt aber auch nicht das Problem an der Geschichte.

echo "$verabschiedung $name";