Wörter in MySQL-Datenbank ersetzen
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
-
Michael
Wörter in MySQL-Datenbank ersetzen
Gibt es einen Befehl, mit dem ich in phpMyAdmin die gesamte Datenbank nach einem Wort durchsuchen lassen kann und er jedes dieser gefundenen Wörter durch ein bestimmtes anderes ersetzen soll? Falls ja, funktioniert das Ganze auch mit URLs, so dass ich z.B. einen kompletten Link durch einen anderen ersetzen kann?
Wäre für jeden Tipp dankbar!
Dump runterladen und im Editor per Suchen/Ersetzen die Änderungen vornehmen, kommt im Übrigen nicht in Frage. Die Änderungen sollten schon in der Datenbank selbst vorgenommen werden, ohne erneut ein Backup einspielen zu müssen.
Michael
Wäre für jeden Tipp dankbar!
Dump runterladen und im Editor per Suchen/Ersetzen die Änderungen vornehmen, kommt im Übrigen nicht in Frage. Die Änderungen sollten schon in der Datenbank selbst vorgenommen werden, ohne erneut ein Backup einspielen zu müssen.
Michael
-
Michael
Also, ich versuche es mal etwas verständlicher an einem Beispiel zu erklären:biototo hat geschrieben:Das ist jetzt nicht abwertend gemeint, aber am einfachsten schnappst du dir das mySQL-Manual und bastelste dir den Querry selber zusammen, denn bis du uns erklärt hast, was du willst und du dir zwischendrin die Datenbank zerpustet hast , hast du das 3mal gemacht ....
Angenommen, in meiner Datenbank befindet sich 50x das Wort "Kaffee", in allen Tabellen. Jetzt möchte ich alle 50 Wörter durch "Tee" ersetzen lassen. Am Einfachsten ist es, wenn ich mir die dump.sql runterlade, sie mit einem Text-Editor öffne, nach dem Wort "Kaffee" suche, alle diese Wörter automatisch durch "Tee" ersetzen lasse und dann das Backup wieder einspiele. Dann habe ich die selbe Wirkung, nur dass ich es direkt in der Datenbank machen will, ohne dazu ein neues Backup aufspielen zu müssen.
War das jetzt etwas verständlicher? Das ist ähnlich wie die Funktion Wörter-Zensur des phpBB2, nur dass ich nicht will, dass in Zukunft auch alle Wörter "Kaffee" durch "Tee" ersetzt, sondern nur die, die sich aktuell in der Datenbank befinden.
Mit Kaffee und Tee ist übrigens nur ein unbedeutendes Beispiel gemeint. Ich habe nicht vor, alle Kaffees durch Tees zu ersetzen.
Gruß Michael
Hi,
ich muss mal diesen Thread ausgraben, da ich genau den selben Wunsch habe: Ein Wort in der Datenbank suchen und mit nem anderen ersetzen.
Geht das, und wenn ja, wie?
Oder wäre es besser, eine dump.sql zu machen, runterzuladen, darin suchen&ersetzen und wieder hochspielen?
Danke schonmal für eure Hilfe!
Greetz
ich muss mal diesen Thread ausgraben, da ich genau den selben Wunsch habe: Ein Wort in der Datenbank suchen und mit nem anderen ersetzen.
Geht das, und wenn ja, wie?
Oder wäre es besser, eine dump.sql zu machen, runterzuladen, darin suchen&ersetzen und wieder hochspielen?
Danke schonmal für eure Hilfe!
Greetz
Hi,
also - ich schweif etwas aus...: Ich hab meine Forenregeln leicht geändert, und nun hat sich ein User bei mir gemeldet mit der Frage, ob ich nicht seinen Usernamen ändern könnte da er nicht ganz mit den Regeln vereinbar war. Ich weiß, sowas sollte man normal nicht machen...
Auf alle Fälle reichte es ja nicht, "nur" den Usernamen zu ändern - der Name kommt ja auch des Öfteren in den Posts vor... Ich hab dann doch ein komplettes Backup gemacht (von der gesamten DB), dieses runtergeladen und darin suchen&ersetzen, wieder hochgeladen, alte Tabellen gelöscht und dump wieder eingespielt.
Ok, das war jetzt vielleicht mit der Brechstange, aber es hat hervorragend geklappt
.
Aber da wir schon dabei sind und ich ja gerne dazulerne: Wäre das auch einfacher gegangen?
Thx!
also - ich schweif etwas aus...: Ich hab meine Forenregeln leicht geändert, und nun hat sich ein User bei mir gemeldet mit der Frage, ob ich nicht seinen Usernamen ändern könnte da er nicht ganz mit den Regeln vereinbar war. Ich weiß, sowas sollte man normal nicht machen...
Auf alle Fälle reichte es ja nicht, "nur" den Usernamen zu ändern - der Name kommt ja auch des Öfteren in den Posts vor... Ich hab dann doch ein komplettes Backup gemacht (von der gesamten DB), dieses runtergeladen und darin suchen&ersetzen, wieder hochgeladen, alte Tabellen gelöscht und dump wieder eingespielt.
Ok, das war jetzt vielleicht mit der Brechstange, aber es hat hervorragend geklappt
Aber da wir schon dabei sind und ich ja gerne dazulerne: Wäre das auch einfacher gegangen?
Thx!
Ich hab selbst vor kurzem meinen eigenen Namen in unserem Forum geändert und es hat mich gestört, daß bei früheren Quotes (aus der Zeit vor der Änderung) mein alter Name angezeigt wurde. Das hab ich wie folgt gelöst in der viewtopic.php:
Ich war einfach zu faul, das in der DB manuell zu ändern
Das läßt sich natürlich auch auf das obige Kaffee -> Tee Beispiel anwenden, nur wird dann halt IMMER ersetzt, logo.
Code: Alles auswählen
$message = str_replace("MEINALTERNAME hat folgendes geschrieben", "MEINNEUERNAME hat folgendes geschrieben", $message);
Das läßt sich natürlich auch auf das obige Kaffee -> Tee Beispiel anwenden, nur wird dann halt IMMER ersetzt, logo.
Und wenn Du noch ne Bedingung einbaust, so daß das str_replace nur ausgeführt wird, wenn das Posting aus der Zeit vor dem tt.mm.jjjj ist? Oder gehts gar nicht um ne zeitliche Abgrenzung?Root007 hat geschrieben: @Matlock: das Prob ist zwar dann auch nicht an der Wurzel gelöst... und wie du ja sagst: Damit wird immer ersetzt, und das würde ich nicht wollen.