所以我有一个旧网站,在很长一段时间内编码,但已经停用3年左右。我有完整的PHP源代码到网站,但问题是我没有数据库的备份了。我想知道重建数据库的最佳解决方案是什么?它是一个大型站点,因此手动浏览每个PHP文件并尝试跟踪哪些表被引用是一项不小的任务。我试过谷歌搜索答案,但没有运气。有没有人知道有哪些工具可以帮助从PHP中提取这些信息,至少给我一个数据库框架的基础?否则,有没有人曾经这样做过?有什么提示可以帮助我并可能加快这个过程吗?这是我正在尝试使用的mySQL数据库。
答案 0 :(得分:1)
我会这样做:
编写SQLi的子集或用于访问数据库的任何接口,以拦截所有数据库访问。 用您的虚拟版本替换所有数据库访问。
基本思想是模拟数据库,以便PHP代码运行足够长的时间来激活各种数据库访问,这反过来又可以分析数据库的构建和使用方式。
从这些虚拟函数中:
SELECT *
,但你可以看到PHP代码希望从中得到哪些字段)答案 1 :(得分:0)
根据您提供的信息,目前有两个答案。
1)你不能这样做
PHP是一种无类型语言。您可以检查sql语句以查找字段和表名称。但它不会完成。如果有select * from table
,则无法看到字段。所以你需要检查php访问字段。也许是通过名字或索引。如果这是通过名称完成的,您可能会感到高兴,因为您可以提取字段的名称。最后,数据类型将丢失。也缺少:哪里是索引,什么是主键,约束等。
2)容易,是的,你可以! 因为你的php使用的是包含orm的现代框架。这为您创建了数据库。 php类/设计中包含元信息。 只需查看手册如何重新创建数据库。