[PHP/MySQL] Connectie over meerdere DB's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik heb een probleem en vraag me af of dit op te lossen is zonder meerdere connecties open te zetten. Caseuitleg:

Ik heb een netwerk, waarbij ik 2 front-end servers heb die PHP draaien en 2 back-ends die MySQL draaien. Dit zit aan elkaar vast door middel van een switch. Voor de duidelijkheid spreek ik over PHP1, PHP2, MySQL1 en MySQL2.

Als je alles op 1 server zou draaien (MySQL & PHP), dan is het mogelijk om in je query meerdere databases aan te spreken om info op te halen. Dit doe je door in de query de tabelnaam te starten met de databasenaam. Bijvoorbeeld: "select * from database.gebruiker, woonplaats". Dit werkt prima.

Nu wil ik in mijn netwerk dit ook doen. Alleen staat de database gebruiker op MySQL 1 en woonplaats staat op MySQL 2. Is het mogelijk om op dezelfde manier te blijven werken? Of moet je nu altijd 2 connecties openen en per query switchen (wat dus echt niet de bedoelding is!)

Benieuwd naar jullie ideeen hierover.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk niet dat MySQL kan wat jij wilt. Waarom voeg je die twee databases niet gewoon samen?

Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt toch meerdere connecties openen naar hostmachines:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$link_mysql1 = mysql_connect(je, gegevens, hier);
mysql_select_db(database, $link_mysql1);


$link_mysql2 = mysql_connect(je, andere, gegevens);
mysql_select_db(andere_database, $link_mysql2);

$query = "SELECT * FROM customers";

$result = mysql_query($query, $link_mysql1);
// doe er wat mee

$query = "SELECT * FROM customers_uit_andere_db";
$result = mysql_query($query, $link_mysql2);
// doe er wat mee


Of heb ik het nu verkeerd begrepen?


Edit: Ja dus :+

[ Voor 47% gewijzigd door Verwijderd op 13-02-2006 18:07 ]


Acties:
  • 0 Henk 'm!

  • w!mz
  • Registratie: Januari 2005
  • Niet online
Wat Worteltaarts code eigenlijk aangeeft is dat er per query moet opgegeven worden welke mysql wordt aangeroepen; dus of 1, of 2 en wat hun host is. De host kan je niet in een query opgeven. Ook de username en password niet. maw, in 1 query 2db's aanroepen die door 2 aparte mysql servers gerund worden lijkt me onmogelijk.

klik miss heb je een account hier :P

http://gathering.tweakers.net


Acties:
  • 0 Henk 'm!

  • ingmdijkstra
  • Registratie: November 2005
  • Laatst online: 14-09-2023
Misschien de oplossing voor wat jij wil. Hiervoor heb je wel de nieuwe MySQL-max nodig.
Gebruik een federal storage engine en maak dan een gelijknamige database aan. Creeer dan de tabellen die je nodig hebt op de local met federal storage engine.

http://dev.mysql.com/doc/...rated-storage-engine.html

Hier leggen ze uit hoe het werkt en wat je nodig hebt.
Altijd leuke om eens te testen:-P

Acties:
  • 0 Henk 'm!

Verwijderd

Kleine aanvullen op de code, zelf heb ik dit ook eens geprobeerd. Het bleek beter te werken wanneer er voor iedere nieuwe query een select_db wordt uitgevoerd. Vaak zit je ondanks de link! toch in de verkeerde database.
Pagina: 1