Kun je op basis van een verzameling php-files de oorspronkelijke opbouw van de SQL database achterhalen?

Ik zit met een berg php-files die vroeger samen met een SQL db een site vormden. De DB is echter foetsie (en de eigenaar heeft geen backup gemaakt).

Hoe kan ik het makkelijkst, op basis van de files, de DB structuur achterhalen? (Liefst zonder elke regel code door te moeten spitten).

Weet jij het antwoord?

/2500

Het beste antwoord

Er is een freeware zoekprogramma dat heel erg geschikt is voor programmeurs. Je kunt namelijk eenvoudig door tekst-bestanden zoeken (html / php / asp etc.) maar ook op complexe wijze (met reguliere expressies en dergelijke). Je kunt dit dus downloaden en vervolgens alle PHP scripts doorzoeken op SQL statements zoasl INSERT INTO, SELECT FROM, UPDATE WHERE, etc. Vervolgens kun je aangeven dat deze zoekresultaten moeten worden geexporteerd en dan zie je alle SQL-statements bij elkaar staan. En zo kun je een beetje de database herleiden. Maar zoek anders eerst door alle PHP scripts naar CREATE TABLE statements. Misschien is er ergens een installatie script?

Lastig! Ik vrees dat je moet zoeken naar alle sql queries, en hier opvissen welke tabellen & velden bevraagd worden. Vervolgens moet je voor deze queries bepalen welk type data ze bevatten. Het kan. Maar het is een boel werk. Wellicht heeft de stapel PhP files wel een bestand voor alle database handelingen? Dan kan je daar snel alle sql statements uit halen. Je kan natuurlijk een parsefunctie schrijven die alle mysql_query() statements doorzoekt en dan de argumenten voor je uitspuugt?

Meestal geeft een website wel een foutmelding als deze bijvoorbeeld een database of een tabel in die database niet kan vinden. Dan kun je de website bijvoorbeeld op een eigen computer plaatsen en opvragen. Eerst verwijs je naar de database en bekijk je wat dan de eerste foutmelding is. En zo kun je steeds een stapje verder gaan. Het is verre van ideaal, maar het is ook wel wat knullig als iemand een eigen database opzet en vervolgens is nauwelijks nog te achterhalen hoe die database er uit gezien moet hebben. Tip: met XAMMP installeer je een webserver (Apache), database (MySQL) + PHP op een Windows-computer. Als alternatief voor XAMMP kun je ook de bestanden op een extern webserver plaatsen. Voordeel van een lokale webserver is echter dat je bijvoorbeeld ook hulpmiddelen kunt installeren om snel met de database te kunnen werken. MySQL biedt ook tools om handig met hun database te kunnen werken.

Bronnen:
http://dev.mysql.com/downloads/workbench/
http://www.apachefriends.org/en/xampp.html

Stel zelf een vraag

Ben je op zoek naar het antwoord op die ene vraag die je misschien al tijden achtervolgt?

/100