Ist es möglich, die Tabelle von einem PDOStatement-Objekt abzurufen?

8

Angenommen, ich habe ein Objekt PDOStatement generiert über PDO->query($query) , ist es möglich, die Tabelle zu erhalten, an der es ausgeführt wurde?

In etwa so:

%Vor%

Ich bin mir bewusst, dass Sie $query->getColumnMeta(0)['table'] dazu verwenden können, aber wie in den Dokumenten erwähnt , es ist nicht sehr sicher. Dies muss für alle PDO-Treiber funktionieren.

    
Nathaniel 18.10.2012, 21:49
quelle

3 Antworten

1

Sie können den Namen der Tabelle mit dem PDOStatement abrufen, das ein assoziatives Array abruft. Der Wert ['name'] ist der Name der Tabelle.

%Vor%     
Circum 10.06.2015 16:51
quelle
0

Sie können die Abfragezeichenfolge überprüfen:

%Vor%

Denken Sie daran, dass eine SQL-Abfrage auf mehrere Tabellen oder keine Tabellen verweisen kann, daher gibt es keine "Tabelle, auf der sie ausgeführt wurde". Sie könnten reguläre Ausdrücke in der Abfragezeichenfolge verwenden, um die erste Tabelle zu finden, auf die für Standardabfragen verwiesen wird ( SELECT , INSERT , UPDATE , DELETE ), aber das ist möglicherweise nicht perfekt.

Verwenden Sie alternativ Modelle, um auf Ihre Daten zuzugreifen, und Sie werden immer wissen, auf welche Tabellen die Modelldefinition zugreift.

    
Ryan P 18.10.2012 21:55
quelle
0

Können Sie nicht einfach die in der Abfrage verwendete Zeichenfolge speichern und einfache String-Manipulationen verwenden, um auf die Tabelle zuzugreifen?

    
Andrew Templeton 11.11.2012 21:56
quelle

Tags und Links