Script zum Abfragen, ob MySQL-Tabelle existiert
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
art
befragen
code
eindeutige antwort
eintrag
erzeugen
existiert achtung
fehler
klappen
kommando
not
nutz
sagen
schauen
show
statement
streit
tabelle
team
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
Mach maln "SHOW TABLES LIKE 'tablename';" und wenn Das Ergebnisrowset ein Element hat gibt die Tabelle.
-
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 -
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 :) -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage