2014-01-14 2 views
1

Итак, у меня есть старый веб-сайт, который был закодирован в течение длительного периода времени, но был неактивным в течение примерно трех лет. У меня есть полный источник PHP для сайта, но проблема в том, что я больше не имею резервной копии базы данных. Мне интересно, какое лучшее решение для воссоздания базы данных было бы? Это крупный сайт, поэтому вручную просматривая каждый PHP-файл, и попытка отслеживать, на какие таблицы ссылаются, - это небольшая задача. Я пробовал искать ответ, но не повезло. Кто-нибудь знает какие-либо инструменты, которые доступны, чтобы помочь извлечь эту информацию из PHP и по крайней мере дать мне основу скелета базы данных? В противном случае, кому-нибудь приходилось это делать? Любые советы, которые помогут мне продвинуться вперед и, возможно, ускорить этот процесс? Я использую базу данных mySQL.Восстановить базу данных с использованием существующего php-кода

+0

Можете ли вы опубликовать пример файла, который вы хотите добавить в базу данных? –

+0

Он не хочет добавлять файл. Он хочет отменить разработку базы данных из кода. Но с предоставленной информацией мы можем только догадываться, как php доступа к базе данных. –

+0

Это будет проблемой. Даже если вы можете извлечь элементы из кода, вы никогда не получите полное изображение базы данных с идентификаторами табличного уровня, ограничениями клавиш, справочными таблицами и т. Д. –

ответ

1

Как я хотел бы сделать это:

Написать подмножество SQLI или любой другой интерфейс был использован для доступа к БД, чтобы перехватить все DB доступ. Замените все обращения к БД вашей фиктивной версией.

Основная идея состоит в том, чтобы эмулировать БД, чтобы PHP-код работал достаточно долго, чтобы активировать различные обращения к БД, что, в свою очередь, позволит вам проанализировать способ создания и использования БД.

Изнутри этих фиктивных функций:

  • печати код SQL используется
  • регенерировать только достаточно фиктивные результаты, чтобы остальной код запуска, на основе таблиц и полей, указанных в запросе параметры и PHP-код, который их извлекает (вы не узнаете многого из SELECT *, но вы можете увидеть, какие поля ожидает от него PHP-код)
  • после того, как вы достаточно поняли структуру БД, воссоздайте таблицы и пусть исходный код работает их мало-помалу
  • есть предыдущий дизайнер секли до смерти не предусмотрел способ воссоздать DB
  • программно
0

В настоящее время на основании предоставленной вами информации на данный момент имеется два ответа.

1) вы не можете это сделать PHP - это беспринципный язык. вы можете проверить свои SQL-инструкции для поиска полей и имен таблиц. но он не будет завершен. если есть select * from table, вы не можете видеть поля. поэтому вам нужно проверить, получает ли php поля. возможно, по имени или по индексу. вы можете быть счастливы, если это будет сделано по имени, потому что вы можете извлечь имя полей. наконец, данные будут отсутствовать. также отсутствуют: где есть индекс, какие первичные ключи, ограничения и т. д.

2) простой, да вы можете! , потому что ваш php использует современный фреймворк с содержит orm. это создало базу данных для вас. мета-информация включена в классы/дизайн php. просто проверьте руководство по воссозданию базы данных.

Смежные вопросы