2013-03-07 72 views
4

我们正在重构我们的数据库,我们需要查找我们的PHP脚本中正在引用的所有表。我正在考虑SQL解析器,但我需要知道表中出现的特定文件。它需要在下面两种情况下找到表contacts,然后列出脚本位置。查找并列出在脚本中访问的所有MySQL表

SELECT * FROM contacts WHERE... 
SELECT * FROM `contacts` WHERE... 
+1

如果不出意外,你可以做一个强力的方法:您可以通过表的列表information_schema数据库,然后将该列表与bash脚本一起使用,该脚本为源树中的每个表名执行grep。如果你的表名是常见的话,结果中可能会有一些“噪音”,但你会得到所有表的引用以及文件名的列表。 – 2013-03-07 19:50:35

+0

伟大的想法本尼。然而,更准确的东西将是理想的。我可以预见到很多“噪音”,就像你用我们的表名一样。 – user2019528 2013-03-07 21:20:16

+0

不幸的是,我想不出一个更好,更准确的方法。当您针对所有表名运行grep时,您可以将该输出传输到一个文件,然后提出一些其他搜索方法(可能使用文本编辑器),以便您更轻松地筛选“噪声”。搜索'FROM $ table'或'UPDATE $ table'将是一个开始,但我仍然想看看所有的行,以确保我没有错过一些古怪的SQL语句。 – 2013-03-08 14:17:22

回答

0

尝试PHPStorm。它上面有一个叫'数据库工具'的功能。配置完成后,您可以使用“查找用法”功能来跟踪所有的表引用的项目中的

更多信息here