Php 从原始MySql查询中获取表名的最佳方法

Php 从原始MySql查询中获取表名的最佳方法,php,mysql,sql,regex,Php,Mysql,Sql,Regex,假设我有一个带有查询方法的通用DB类,该查询方法在我的源代码中使用,我想找出mysql查询中使用的表名 限制是我使用的是MySql 5.5.36 另外,假设我们正在讨论我正在使用的数百万个表,并且不会使用mysql信息模式 我想知道的是,有没有一种简单的方法来使用表名 Explain对于SELECT stations显然很好,但是由于它的MySql 5.5.36,我不能在replace、update、insert等方面使用它 PDOStatement::getColumnMeta可能有助于我们获

假设我有一个带有查询方法的通用DB类,该查询方法在我的源代码中使用,我想找出mysql查询中使用的表名

限制是我使用的是MySql 5.5.36

另外,假设我们正在讨论我正在使用的数百万个表,并且不会使用mysql信息模式

我想知道的是,有没有一种简单的方法来使用表名

Explain对于SELECT stations显然很好,但是由于它的MySql 5.5.36,我不能在replace、update、insert等方面使用它

PDOStatement::getColumnMeta可能有助于我们获取表名,但它不适用于返回结果集的查询

某种类型的regexp对此可能是可能的,但我非常怀疑这是一个好的解决方案,我的查询很大,有多个连接等。regexp将非常复杂,可能会有相当比例的时间失败


还有其他想法吗?

显示表格;?如何将表名提供给DB类?假设它们完全是原始sql。类似于$db->query'select*fromtrandomTableName;';您有没有调查过任何问题?您是否有权访问mysql服务器,以便重新启动并更改my.cnf配置?如果是这样的话,您是否考虑过临时启用general_log并改用它?