SQL-Syntax für Update Options

  • Guten Abend allerseits,
    da ich in einer DB mehrere WP Instanzen laufen habe würde ich gerne einige Einstellungsänderungen über die DB direkt vornehmen.
    So Sachen wie alle Revisions entfernen oder Kommentare löschen bekomme ich hin aber ich scheitere daran die globalen Einstellungen übers SQL zu ändern.

    Versucht habe ich es zbsp mit:

    SQL
    UPDATE wp_options
    SET default_comment_status='closed'
    WHERE default_comment_status='open';

    Auch so bereits versucht:

    SQL
    UPDATE wp_options
    SET default_comment_status='closed'

    Ich erhalte aber immer Fehler-Meldungen wie zBsp diese:

    Code
    #1054 - Unknown column 'default_comment_status' in 'field list'

    Inzwischen ist mir auch klar das der Befehl irgendwie anders lauten müsste da ja nur der Wert einer bestimmten Spalte geändert werden muss.
    ich weiss aber nicht wie.

    Verrät mir das jemand?
    Gruss Werner

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Weniger Spalte, als Reihe...

    ich denke, Du solltest einmal in die Settings API im Codex schauen. Es gibt weiters neben get_option auch add_option und update_option (soweit ich das grad im Kopf hab).

  • Hallo Kaiser,
    kann es sein das es hier ein Missverständnis gibt?
    Das was ich gefunden habe bringt mich nicht weiter.

    Es geht mir nicht darum wie man bestimmte DB-Inhalte ausgeben lässt sondern wie man sie per SQL-Befehl abändert.

    gruss werner

  • Wieso? Du willst den wp_options-table doch ändern, oder?

    http://codex.wordpress.org/Function_Reference/update_option

    Damit kannst Du dort drinnen alles mögliche updaten. Daten mit get_option holen, in ein Array legen, ändern und mit foreach($bla as $blop) { update_option(usw... aktualisieren..

    Kann zwar sein, dass ich mich irre (lange her, dass ich ein Plugin zu sowas geschrieben hab), aber es sollte eigentlich funktionieren.

  • Korrektes SQL:

    SQL
    UPDATE wp_options
    SET option_value = 'closed'
    WHERE option_name = 'default_comment_status' AND option_value='open';


    Du musst schon die korrekten Spaltennamen der entsprechenden Tabelle benutzen und mit ihren Inhalten ausfilteren.

    Die sicherere Variante ist allerdings, wie schon genannt, über die update_option Funktion des jeweiligen Blogs zu gehen, um Nebeneffekte zu vermeiden.

  • Weniger Spalte, als Reihe...

    ich denke, Du solltest einmal in die Settings API im Codex schauen. Es gibt weiters neben get_option auch add_option und update_option (soweit ich das grad im Kopf hab).

    Du musst schon die korrekten Spaltennamen der entsprechenden Tabelle benutzen und mit ihren Inhalten ausfilteren.

    Die sicherere Variante ist allerdings, wie schon genannt, über die update_option Funktion des jeweiligen Blogs zu gehen, um Nebeneffekte zu vermeiden.

    Sag einfach, wie weit Du damit kommst, dann helfen wir hier gerne weiter...

  • Vielen Dank euch beiden.
    Hat wunderbar funktioniert.

    Was mich allerdings interessieren würde ist welche nebeneffekte auftreten können.
    Hier werden doch bloss Tabelleninhalte ausgetauscht und wenn man dies sorgfältig tut ohne falsche Inhalte reinzuschreiben solte das doch ohne "Nebeneffekte" vonstatten gehen, oder?

    gruss werner

  • Die von WordPress angebotenen get_/add_/update_/remove_ option Funktionen rufen ihrerseits entsprechende Filter auf, in die sich Plugins einklinken können und ggf. die Werte und/oder das Verhalten ändern können.
    Unter anderem können auch Caching Plugins sowas mitlesen um zu erkennen, ob jetzt statische, auf Platte gecachte Seiten hinfällig werden.
    Das erwischt man mit einem puren SQL Statement in der mySQL Oberfläche natürlich nicht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!