Wie kann ich die Spalten-Namen aus der select-Abfrage in php?
Möchte ich eine SELECT-Abfrage, aber ich weiß nicht, wie viele Spalten, um Sie auszuwählen.
Wie:
select name, family from persons;
Wie kann ich wissen, welche Spalten Sie ein?
"Ich bin derzeit der Gestaltung einer Website für die Abfrage ausführen durch den Benutzer.
So, wenn der Benutzer führt diese Abfrage, ich weiß nicht, welche Spalten ausgewählt.
Aber wenn ich will, um zu zeigen, die Ergebnisse, und zeichnen Sie eine Tabelle für die user, die ich kennen sollte, welche Spalten ausgewählt".
- WÄHLEN Sie name_of_yourcolumn VON der Tabelle ODER ... WÄHLEN Sie * (wie in alles) AUS der Tabelle, oder, wenn Sie wirklich wollen, den Namen der Spalten, ZEIGEN die SPALTEN AUS der Tabelle
- Wie es aussieht ist die OP kennt der SQL-syntax. Ich denke, dass er stattdessen ist zu Fragen, wie entdecken Sie das Datenbank-schema.
- Ihre Letzte edit hat verwirrt mich. Sie entwerfen eine Website, die akzeptiert beliebige SQL-Abfragen vom Benutzer, wie zum Beispiel sqlfiddle.com? Wenn also der Benutzer die Abfrage enthält bereits alle Informationen, die Sie benötigen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst genau verstehen, welche Daten Sie abrufen möchten. Dann schauen Sie auf die Datenbank-schema, um herauszufinden, welche Tabellen die Datenbank enthält, und die Spalten der Tabellen enthalten.
Die folgende Abfrage gibt ein ResultSet zurück, jeder Spalte jeder Tabelle in der Datenbank:
In diesem sqlfiddle, es gibt das folgende ResultSet zurück (abgeschnitten, hier der Kürze halber):
Nun weiß ich, dass ich wählen Sie die Spalte CHARACTER_SET_NAME aus der Tabelle CHARACTER_SETS wie diese:
Verwenden
mysqli::query
zur Ausführung dieser Abfragen.Wenn ich verstehe, was Sie Fragen, möchten Sie Sie wahrscheinlich verwenden MySQLIi und die fetch_fields Methode auf das Ergebnis-set:
http://us3.php.net/manual/en/mysqli-result.fetch-fields.php
Beispiele sehen Sie auf dieser Seite.
Unbekannten Abfrage-Felder, können Sie einfach diesen code verwenden.
Es gibt Sie in jeder Zeile die Felder name=>Daten. Sie können sogar ändern Sie die Taste, um
''
man bestellt array-Spalten, indem num nach der Spalten-Reihenfolge in der Datenbank.Wenn Sie möchten, um Spaltennamen für jede Abfrage in allen Fällen so einfach ist es nicht.
Im Falle, dass mindestens eine Zeile zurückgegeben wird, die Sie bekommen können Spalten direkt aus dieser Reihe.
Aber wenn Sie möchten, um Spalten-Namen, wenn es kein Ergebnis in der Tabelle anzeigen/nach CSV exportieren, müssen Sie die Verwendung von PDO-Funktionen, die sind nicht 100% zuverlässig.
Verwenden
mysql_query()
und diese Abfrage ausführen:Beispiel:
verwenden
DESC table
oderBeispiel
Ausgabe