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.
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.
Können Sie nicht einfach die in der Abfrage verwendete Zeichenfolge speichern und einfache String-Manipulationen verwenden, um auf die Tabelle zuzugreifen?