kostenloser Webspace werbefrei: lima-city


Script zum Abfragen, ob MySQL-Tabelle existiert

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    furygamer

    furygamer hat kostenlosen Webspace.

    Hi,

    gibt es ein Script, womit man abfragen kann, ob eine MySQL-Tabelle existiert?


    furygamer
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Und was soll passieren wenn sie existiert bzw. nicht existiert? Du kannst ein zb. ein Select auf die Tabelle machen und erhält einen Fehler wenn sie nicht existiert oder du erstellst die Tabelle mit einem "CREATE TABLE IF NOT EXISTS <name>.. ." oder dropst die Tabelle zunächst sofern sie existiert. "DROP TABLE IF EXISTS <name> "

    Alternativ könntest du die MySQL Metadaten (information_schema) befragen und schauen ob die Tabelle dort drin steht. Was anderes fällt mir nicht ein.

    Beitrag zuletzt geändert: 20.10.2009 10:25:47 von evil-devil
  4. Mach maln "SHOW TABLES LIKE 'tablename';" und wenn Das Ergebnisrowset ein Element hat gibt die Tabelle.
  5. if(mysql_query("INSERT INTO blabla") == true)
      echo "Deine Tabelle gibt\'s";
    else
      echo "Tabelle existiert nicht.";

    Queries geben bei Statements, wie z.B. INSERT oder UPDATE, false zurück, wenn die Tabelle nicht existiert oder true, falls sie existiert.

    Achtung: Bei SELECT oder SHOW z.B. geht das in der Art nicht, weil als Antwort eine Resource geschickt wird.

    styVe (qap2-Team)

    Beitrag zuletzt geändert: 20.10.2009 11:18:27 von qap2
  6. Cool. Von so 'ner coolen Insert-Syntax hab ich ja noch nie gehört. Insert from :D
    Ich würde eher sagen das wird die immer false zurück geben :P

    Zudem: Es ist stilistisch unschön einen Fehler zu erzeugen. Weiterhin wird dann bei dem Insert villeicht noch etwas eingefügt, falls die Tabelle besteht.

    Also, nutze show table oder if not exists, falls es diesen Zusatz gibt bei dem Kommando, welches du ausführen möchtest :)
  7. Ja, auch gemerkt, dass da was nicht gestimmt hat. Hatte es davor blöderweise mit SELECT probiert, was natürlich nicht klappen konnte..^^

    Bei if not exists ist das Problem nur, dass es true zurückgibt, egal ob die Tabelle schon existiert hat oder erst erstellt wurde... :P
    Über Stilfragen kann man sich natürlich streiten, aber ein Eintrag findet nicht statt (gerade kurz ausprobiert). :-)

    styVe (qap2-Team)

    Edit: Damit der Threadersteller jetzt auch eine eindeutige Antwort bekommt.
    if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'hallo'")) >= 1)
      echo "Deine Tabelle gibt\'s";
    else
      echo "Tabelle existiert nicht.";

    Sollte in jedem Fall klappen und keinen stilistischen Bruch darstellen. :-)

    Beitrag zuletzt geändert: 20.10.2009 11:32:55 von qap2
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!