Frage

Ich habe viel gesucht, konnte aber keinen Weg finden, Tabellenbeziehungen wie eins zu eins, eins zu vielen VS in PHP abzugeben.

Gibt es eine Möglichkeit, dieses Problem in PHP zu behandeln?

Ein Ergebnis könnte sein:

array(
   'tableA' => array(
                'one-to-one' => array('tableB', 'tableC'),
                'one-to-many' => array('tableD'),

   'tableB' => array(
                'one-to-one' => array('tableA')


    ...        
)

Alle Vorschläge werden sehr geschätzt.

War es hilfreich?

Lösung

Sie müssen dies selbst tun, indem Sie die Ausgabe des Beschreibungsbefehls analysieren. Sie könnten in Betracht ziehen, ein orm zu verwenden Lehre. Sie fordern die Doktrin an Auf Tisch A und Tabelle B und es handht über den Rest.

Andere Tipps

Ich fand ein Skript bei http://dev.mysql.com/doc/refman/5.0/en/show-table-status.html Dies beschreibt die Analyse von Tabelleninformationen mit Regex. Ich hatte den Code zum Arbeiten manipuliert. Hier ist der Code.

<?php
$conn = mysql_connect('localhost', 'user', 'pass');
if (!$conn) {
    die('Could not connect: ' . mysql_error());
}

//DB connection already established
mysql_query("use db");
$res = mysql_query("SHOW CREATE TABLE tbl");
$row = mysql_fetch_assoc($res);
mysql_free_result($res);

//Only work on InnoDB foreign key info.
if(preg_match_all(
         '/FOREIGN KEY \(`(.*)`\) REFERENCES `(.*)` \(`(.*)`\)/',
         $row['Create Table'],
         $matchArr)) {
    print_r($matchArr); //which writes down the result

}


?> 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top