Liebe/-r Experte/-in,
ich nutze PHP und MySQL jeweils in der aktuellsten Version. Ich möchte einen MySQL-Script, den ich im QueryBrowser benutze, auch in PHP nutzen.
Um mehrere Statements zu verarbeiten nutze ich mysqli.
Der SQL-Skipt sie ungefähr so aus:
set @x1 = „‚TEST‘“;
set @chgdate = „‚2011-12-07‘“;
set @comment = „‚updated by svs‘“;
set @s = concat(‚INSERT INTO tbl1 (changetext, changedate, comment) select ‚,@x1,‘,‘,@chgdate,’,’,@comment,’ from
tbl2 where tbl2.sourcetext in (’,@x1,’)’);
PREPARE stmt FROM @s;
execute stmt;
Der SELECT nach dem INSERT ist notwendig, um nur valide Daten zu inserten.
Der Skript liegt in einer sql-Datei und wird von php mittels fread eingelesen. Danach führe ich eine mysqli_multi_query mit dem übergebenen sql-string aus.
Das funktioniert mit einfachen Skipten, in denen z.b. 2 INSERTS hintereinander kommen. Beide INSERTS werden erfolgreich abgearbeitet.
Leider scheint das nicht mit „SET“ und „PREPARE“ usw. zu gehen. Gibt es da eine Einschränkung, daß z.b. von mysqli nur selects und inserts gemacht werden können?
Oder habe ich etwas anderes falsch gemacht?
Vielen Dank.
Sven Schulze