Mailinglisten-Archive |
Aloha, > Von: Joerg Holz[SMTP:holz_(at)_derdiedas.de] > > ich habe das problem, dass ich 'eigentlich' in einer db-anfrage zwei > unterschiedliche datenbanken auf zwei unterschiedlichen plattformen in > EINEM SELECT abfragen muesste. das eine ist eine mysql, das andere eine > mssql. > > ich behelfe mir zur zeit damit, dass ich die beiden abfragen getrennt > handel, die werte jeweils in ein array schiebe und dann mit php > weiterbearbeite. das geht auch einigermassen, ist aber sehr umstaendlich > und ich habe etwa 99% an unnuetzen daten. > .... und vorallendingen liegen diese Daten dann auch noch im Hauptspeicher rum, was nicht sonderlich performant ist. > gibt es eine moeglichkeit das irgendwie anders zu loesen? > Ich würde das so machen (etwas abstrahiert, pass es einfach an deine Gegebenheiten an) $odb1 = new DB ... ( zur Datenbank, die die meisten nützlichen Infos liefert) $odb2 = new DB ... ( zur anderen Datenbank, um die noch benötigten Details besorgt) $odb1->query ( .....) while ( $odb1->next_record ) { $sSql = .... Query für db 2 zusammenbauen $odb2->query($sQql); Werte aus beiden Abfragen zusammenbasteln und ausgeben / speichern / .... } so sollten die Abfragen nur die Daten liefern, die gebraucht werden. Das Query zur db 2 wird halt leider mehrmals ausgeführt, aber wenn db 2 ein sinnvolles Caching hat, und sowiso immer die gleiche Tabelle abgefragt wird, sollten sich die Antwortzeiten in Grenzen halten. Grüße, Mathias
php::bar PHP Wiki - Listenarchive