Guten Tag!
Derzeit liegen in meinem Webprojekt alle MySQL-Queries als formattierte Strings vor, z. B.:
[color=#008000]INSERT INTO addresses SET %s;[/color]
[color=#008000]UPDATE addresses SET %s WHERE id = %u;[/color]
Desweiteren verwende ich ein PHP-Objekt, dessen Eigenschaften mittels der Methode __toString() in gültige Feld-Wert-Paare für die SET-Anweisung umgewandelt werden. Strings werden escapet und in Anführungsstriche gesetzt, Arrays werden in einen kommagetrennten String konvertiert, etc. Folglich kann es auch vorkommen, dass nicht jedem Feld einer Tabelle ein Wert übergeben wird.
Nun würde ich gerne MySQL-Prozeduren schreiben, die ebenfalls in der Lage sind, eine variable Anzahl an Feld-Wert-Paaren entgegenzunehmen. Ist sowas überhaupt in irgendeiner Weise möglich? Oder muss ich eine lange Parameterkette mit allen Feldnamen angeben und bei der Werteübergabe teilweise etliche NULL-Werte übergeben?
Mit freundlichen Grüßen
Jag
Derzeit liegen in meinem Webprojekt alle MySQL-Queries als formattierte Strings vor, z. B.:
[color=#008000]INSERT INTO addresses SET %s;[/color]
[color=#008000]UPDATE addresses SET %s WHERE id = %u;[/color]
Desweiteren verwende ich ein PHP-Objekt, dessen Eigenschaften mittels der Methode __toString() in gültige Feld-Wert-Paare für die SET-Anweisung umgewandelt werden. Strings werden escapet und in Anführungsstriche gesetzt, Arrays werden in einen kommagetrennten String konvertiert, etc. Folglich kann es auch vorkommen, dass nicht jedem Feld einer Tabelle ein Wert übergeben wird.
Nun würde ich gerne MySQL-Prozeduren schreiben, die ebenfalls in der Lage sind, eine variable Anzahl an Feld-Wert-Paaren entgegenzunehmen. Ist sowas überhaupt in irgendeiner Weise möglich? Oder muss ich eine lange Parameterkette mit allen Feldnamen angeben und bei der Werteübergabe teilweise etliche NULL-Werte übergeben?
Mit freundlichen Grüßen
Jag