MYSQL Datenbank mit PHP bearbeiten

  • Hallo,

    Also ich hab da ein Problem und zwar möchte ich zwei sachen machen MIT PHP.

    1.
    Ich möchte in einer Datenbank alle Tabellen bis auf ein paar löschen.
    Also quasi DELETE ALL TABLES FROM DATABASE_NAME WHERE TABLENAME != "TABLE1" AND WHERE TABLENAME != "TABLE2" AND WHERE TABLENAME !="TABLE3"

    2.
    Ich möchte in ner Tabelle alle Spalten löschen bis auf ein paar.
    Also quasi DELETE ALL ROWS FROM TABLENAME WHERE ROWNAME != "ROW1" AND WHERE ROWNAME !="ROW2" AND WHERE ROWNAME !="ROW3".

    Ich habe schon google bemüht aber leider nichts gefunden.
    Das ganze muss mit PHP gemacht werden.

    Das wird ein Skript das Foren auf Werkszustand zurücksetzt um sie Anschließend zu Updaten (ebenfalls per Skript sowie vollautomatisch) dabei aber die User, Beiträge, Nachrichten etc. beibehält.

    Wäre cool wenn ihr mir helfen könnt.
    Aber ich glaube mit einem ganz einfachen Query alleine wird das nichts oder?

  • Bitte helft mir, ich hab mir sonst schon alle funktionen die ich für dieses Teil brauche selbst zusammengebastelt aber hier komme ich einfach nicht weiter.

  • Nein, du kannst nicht ohne Weiteres in dieser Art am Data Dictionary herumpfuschen. Du musst zunächst die betroffenen Tabellen und Spalten aus diesem abfragen und dann in einer Schleife passende DDL-Anweisungen zusammenbauen.

    SQL
    SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'datenbankname'
    AND TABLE_NAME NOT IN ('TABLE1', 'TABLE2', 'TABLE3', ...)
    SQL
    SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_SCHEMA = 'datenbankname'
    AND TABLE_NAME = 'tabellenname'
    AND COLUMN_NAME NOT IN ('COL1', 'COL2', 'COL3', ...)

    Tabelle löschen:

    Code
    DROP TABLE datenbank

    Spalte(n) löschen:

    Code
    ALTER TABLE tabelle DROP spalte1[, DROP spalte2, ...]

    Siehe auch diese Scherzantwort, wo Der Doktor mir empfiehlt, das gesamte Winhistory-Forum zu droppen.
    Ohne FOREIGN_KEY_CHECKS = 0 kannst du sonst bei Fremdschlüsselabhängigkeiten vermutlich nicht ins Blaue hinein herumlöschen.

    Schaltet den Mist doch endlich mal ab

  • Danke!
    Wirklich ich bin dir sehr dankbar, hätte das so wohl nicht hinbekommen sonst. :)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!