Hallo Felix,
warum zum grundgütigen Geier sollte man das so umständlich machen. Das ruft doch nach HEREDOC.
$st = $db->prepare(<<<SQL
UPDATE TABLE `warengruppe`
SET `spalte`=:wert
WHERE `anderespalte` LIKE :andererwert
SQL
);
Die Zeilenumbrüche des Sourcecodes sind Teil des Heredoc-Strings. Wichtig für Neulinge ist hier, dass das Abschluss-Symbol (hier: SQL) ganz links stehen muss und maximal ein Semikolon dahinter stehen darf. Kein Space. Da der Heredoc-String als Parameter verwendet wird, darf im konkreten Fall natürlich auch kein Semikolon stehen.
Ab PHP 7.3 wurde Heredoc ein bisschen schlauer. Das steht aber nicht im Handbuch, sondern nur in den Releasenotes. Das Endesymbol darf eingerückt werden und man darf auch dahinter weiterschreiben. Die Einrückung des Endesymbols wird dabei auf alle Zeilen des Heredoc-Strings übertragen, d.h. alle Zeilen des Heredoc-Strings müssen mindestens so weit eingerückt sein wie das Ende-Symbol, und die Einrückung ist nicht Teil des Strings.
// Erst ab PHP 7.3 erlaubt:
$st = $db->prepare(<<<SQL
UPDATE TABLE `warengruppe`
SET `spalte`=:wert
WHERE `anderespalte` LIKE :andererwert
SQL);
Rolf
sumpsi - posui - obstruxi