Strings in SQL-Statement ersetzen

masmin

Mitglied
Hallo,

ich habe folgendes Problem: gegeben sei z.B. ein SQL-Statement wie
Code:
Select spalte1 von tabelle where spalte2="abc" and spalte3="123" or spalte4="456"
Nun sollen alle spaltennamen z.b. folgendermaßen ersetzt werden (bzw. ergänzt werden):
Code:
Select NEUEspalte16 von tabelle where NEUEspalte26="abc" and NEUEspalte36="123" or NEUEspalte46="456"
Es sollen also in dem Statement lediglich die Spaltennamen ersetzt werden. Das Ganze muß auch für andere Statements funktionieren, z.B. für Update- oder Insert-Statements.
Hat da jemand eine praktische Idee? :rolleyes:
 
Das mit str_replace kenn ich, allerdings muß ich mit str_replace auch genau wissen, wie denn der String heißt, welchen ich ersetzen muß. In meinem Fall weiß ich aber nicht, wie denn die Spalten heißen.
 
Am besten wäre es natürlich, wenn du deine Spaltenbezeichner vorbildlich mit so genannten Backticks explizit ausgezeichnet hättest (siehe Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen). Denn dann hätte eine einfache Ersetzungsliste aller Spaltenbezeichner gereicht, um sie auszutauschen und nicht gewollte Ersetzungen zu vermeiden. So bleibt dir wohl nicht viel anderes übrig, als alles manuell zu ersetzen.

Allgemein sollte jedoch die Entwicklung der Datenstruktur schon durchdacht sein, sodass Änderungen so gut wie nicht nötig sind.
 
Was meinst du genau mit "alles manuell ersetzen"?

Die Datenstruktur an sich wurde auch gut durchdacht, allerdings kam es im Nachhinein zu unvorhergesehenen Änderungen.

Ich dachte eigentlich, dass es etwas einfacher wäre, da man ja nur nach bestimmten Strings suchen muß, welche nach bestimmten Schlagwörtern auftauchen. Ist sowas nicht mit RegEx möglich? Ich kenn mich da leider nicht gut genug aus.
 
Zuletzt bearbeitet:
Zurück