Du hast zwar das Beispiel aus dem PHP-Handbuch kopiert, aber du hast den Satz darüber anscheinend nicht gelesen.
Doch.
"Returns FALSE if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result() first."
Und next_result() rufe ich ja auf, in der while schleife...
Und das Beispiel orientiert sich auch nicht daran, sondern fragt die Ergebnisse nur ab, wenn multi_query() kein false liefert und damit nur, wenn das erste Statement keinen Fehler bringt.
Das hatte ich vergessen, habe einfach eine Query als erstes eingefügt, die immer zutrifft. Somit wird multi_query() immer ausgeführt und alle folgenden Querys sollten abgearbeitet werden.
Übrigens muss es eine while() Schleife sein, da ich nicht weiß wieviele Querys es letztendlich werden. Und was auch noch wichtig ist: Die einzige Schleife die ich habe ist die do while Schleife mit next_result(). Was meinst du also bitte mit vermeide Endlosschleifen? Es gibt hier keine! Und das
do { }
while ($test->next_result() && $test->more_results());
Ist notwendig, da sonst ein StrictStandards Error kommt.