Mysql PDO: Erhalte eine Zeile mit "dynamischen" Feldern in der Abfrage

8

Ich habe eine Abfrage mit einem dynamischen Feld, wie kann ich auf dieses Feld zugreifen, ohne dessen Namen zu kennen?

%Vor%     
Julien 28.05.2015, 21:19
quelle

4 Antworten

3

Umbrechen Sie die Konstante in {} , um dynamische Variablen zu erstellen.

%Vor%

Sie können ein Beispiel aus der Dokumentation sehen.

  

Curly geschweifte Klammern können auch verwendet werden, um den Eigenschaftsnamen klar zu begrenzen.

Demo: Ссылка

    
Federkun 28.05.2015, 21:23
quelle
3

Es gibt viele Ansätze dazu. Wenn es nicht wichtig ist, dass der Variablenname mit column_name übereinstimmt, können Sie dem Ausdruck in der SELECT -Anweisung

einen Alias ​​zuweisen

Zum Beispiel:

%Vor%

Dann würden Sie den Namen der Variablen im Objekt $mycol

"kennen" %Vor%

Ich denke, dieser Ansatz könnte im allgemeineren Fall gut sein, wenn Sie mit Tabellen arbeiten, die Spaltennamen haben, die von syphilitischen Idioten -Entwicklern zugewiesen wurden, die einen guten Grund hatten

%Vor%

Offensichtlich gibt es viele andere Ansätze, wie zum Beispiel das Vermeiden von PDO::FETCH_OBJ und das Verwenden von PDO::FETCH_NUM . Wenn du bei PDO::FETCH_OBJ bleiben willst, denke ich, dass das Zuweisen eines Alias ​​funktionieren würde.

Das Abrufen der Metadaten aus der Ergebnismenge ist ein Ansatz, den ich in Betracht ziehen würde, wenn getColumnMeta nicht immer noch experimentell wäre.

    
spencer7593 28.05.2015 21:42
quelle
1
%Vor%

Wenn FIELD_NAME auf diese Weise definiert wird, können Sie mit dieser Methode die erste Spalte abrufen.

    
Josep Valls 28.05.2015 21:28
quelle
0

Wenn Sie nur versuchen, einen einzelnen Wert aus jeder Zeile zu erhalten, können Sie PDOStatement::fetchColumn()

%Vor%

Beachte auch, dass du ' vermisst hast.

    
Mike 28.05.2015 21:30
quelle

Tags und Links