Anzeige aller Tabellennamen in PHP aus der MySQL-Datenbank

8

Alles klar, also bin ich ziemlich neu in PHP und SQL / MySQL, also ist jede Hilfe willkommen.

Ich habe das Gefühl, dass ich den richtigen Ansatz gewählt habe. Ich suchte php.net nach "MySQL zeige alle Tabellennamen", gab eine veraltete Methode zurück und schlug eine MySQL-Abfrage auf SHOW TABLES [FROM db_name] [LIKE 'pattern'] vor Ich bin mir nicht sicher, was "pattern" bedeutet, aber ich suchte nach "SQL Wildcard" und bekam das Symbol. Nach allem, was ich gefunden habe, sollte dies funktionieren und die Tabellennamen am Ende ausgeben, tut es aber nicht. Irgendwelche Vorschläge? Vielen Dank im Voraus.

%Vor%

Ich bekomme keine Fehler. Die Ausgabe ist genau das Echo, aber keine Tabellennamen.

    
EGHDK 27.03.2012, 22:26
quelle

8 Antworten

38

Die eckigen Klammern in Ihrem Code werden in der mysql-Dokumentation verwendet, um Gruppen von optionalen Parametern anzugeben. Sie sollten nicht in der eigentlichen Abfrage sein.

Der einzige Befehl, den Sie tatsächlich brauchen, ist:

%Vor%

Wenn Sie Tabellen aus einer bestimmten Datenbank wollen, sagen wir die Datenbank "Bücher", dann wäre es

%Vor%

Sie benötigen nur den LIKE-Teil, wenn Sie nach Tabellen suchen möchten, deren Namen einem bestimmten Muster entsprechen. z.B.

%Vor%

würde Ihnen die Namen von Tabellen zeigen, die irgendwo im Namen "Buch" haben.

Wenn Sie die Abfrage "Tabellen anzeigen" ausführen, wird keine Ausgabe erzeugt, die Sie sehen können. SQL beantwortet die Abfrage und leitet sie an PHP weiter, aber Sie müssen PHP sagen, dass es auf die Seite zurückkommt.

Da es sich anhört, als wären Sie neu in SQL, würde ich empfehlen, den mysql-Client über die Befehlszeile auszuführen (oder mit phpmyadmin, falls er auf Ihrem System installiert ist). Auf diese Weise können Sie die Ergebnisse verschiedener Abfragen anzeigen, ohne die PHP-Funktionen zum Senden von Abfragen und Empfangen von Ergebnissen durchgehen zu müssen.

Wenn Sie PHP verwenden müssen, ist hier eine sehr einfache Demonstration. Versuchen Sie diesen Code nach dem Verbinden mit Ihrer Datenbank:

%Vor%     
octern 27.03.2012, 22:32
quelle
6

Für Leute, die PDO-Statements

verwenden %Vor%     
Sharpless512 04.05.2013 09:47
quelle
1
%Vor%

zeigt alle Tabellen in Ihrer Datenbank an. Wenn Sie die Namen filtern möchten, verwenden Sie LIKE und Platzhalter %

%Vor%

gibt Ihnen alle Tabellen mit dem Namen 'user', zum Beispiel

%Vor%

usw.

    
marvin 27.03.2012 22:33
quelle
1

Die Klammern, die häufig in der mysql-Dokumentation für Beispiele verwendet werden, sollten in einer 'echten' Abfrage weggelassen werden.

Es scheint auch nicht, dass Sie das Ergebnis der MySQL-Abfrage irgendwo widergeben. mysql_query gibt bei Erfolg eine mysql-Ressource zurück. Die PHP-Manpage enthält auch Anweisungen zum Laden der mysql-Ergebnisressource in ein Array für Echos und andere Manipulationen.

    
user622367 27.03.2012 22:35
quelle
1

Abfragen sollten wie folgt aussehen:

%Vor%

Dinge aus der MySQL-Dokumentation in eckigen Klammern [] sind optional.

    
Joshua Martell 27.03.2012 22:30
quelle
1

// list_tables bedeutet Datenbank alle Tabelle

%Vor%     
Mizanur Rahaman 27.08.2017 05:30
quelle
0

Sie müssen die mysql_query einer Variablen zuweisen (zB $ result) und diese Variable dann wie ein normales Ergebnis aus der Datenbank anzeigen.

    
Al_ 27.03.2012 22:30
quelle
0

Sicher kannst du deine Datenbank mit SHOW TABLES abfragen und dann alle Datensätze durchlaufen, aber das sind zusätzliche Codezeilen und funktionieren.

PHP hat eine eingebaute Funktion, um alle Tabellen in einem Array für Sie aufzulisten:

  

mysql_list_tables - Weitere Informationen dazu finden Sie unter Die PHP-API-Seite

    
braumer 09.10.2015 09:26
quelle

Tags und Links