Queries in 2 databases uitvoeren
ik zit met een vraag en weet niet echt hoe ik dit moet oplossen. Ik wil namelijk alle veranderingen in 2 databases doorvoeren en ik zou graag willen weten hoe ik dit moet doen. Alles met 1 database doen is geen probleem, maar zodra ik over wil stappen op een dubbele database heb ik even geen idee waar te beginnen.
Tevens maakt het me niet uit wat jullie denken van een dubbele database connectie open of wat dan ook, het gaat nu gewoon even alleen maar om de metode die ik graag zou willen vinden.
*een kleine update: Ik bedoel eigenlijk dat ik 1 update, delete, insert querie oproep en dat hij dat dan automatisch in beide databases doet..
Bvd,
Nivek
Gewijzigd op 01/01/1970 01:00:00 door Kevin Tuns
volgens mij kan dat gewoon met UPDATE tablenaam.databasenaam
en daarom is het ook niet mogelijk om in 2 databases dit te doen met 1 query
je kan wel met mysqli 2 connecties maken, en vervolgens de connectionresources gebruiken.
ik denk dat je daarnet naar mijn topic hebt gekeken voordat ik die update toevoegde. Ik weet dat ik het overal handmatig aan kan passen en dubbele queries kan maken, maar ik zou graag willen dat hij kijk welke database er zijn en gewoon alle queries in de database doorvoert.. Dus als ik bijvoorbeeld 3 databases heb dat hij het in alle 3 doet zonder dat ik eerst alle queries moet aan gaan passen.
Terence schreef op 11.04.2008 10:18:
je mag data nooit dubbel opslaan.
en daarom is het ook niet mogelijk om in 2 databases dit te doen met 1 query
je kan wel met mysqli 2 connecties maken, en vervolgens de connectionresources gebruiken.
en daarom is het ook niet mogelijk om in 2 databases dit te doen met 1 query
je kan wel met mysqli 2 connecties maken, en vervolgens de connectionresources gebruiken.
En waarom MAG ik data nooit dubbel opslaan?
Ze hebben hiervoor speciaal de relaties uitgevonden die je tussen tabellen kan leggen.
leesvoer
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
Ik zat zelf te denken dat er een functie voor nodig is om alle queries op te vangen en dubbel door te voeren.. Gaat er wat fout dan wordt de querie in een sql bestand opgeslagen om later uitgevoerd te worden.
edit: tevens weet ik heel goed hoe normalisatie en relaties werken, ik vraag ook gewoon hoe dit te doen is en dit heeft niks te maken met een brakke database structuur of wat dan ook.
Gewijzigd op 01/01/1970 01:00:00 door Kevin Tuns
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
Terence schreef op 11.04.2008 10:30:
stop dan alsjeblieft met programmeren, wij komen het vaak genoeg tegen bij klanten hier op mijn stage en hebben uren werk aan dit soort dingen, puur omdat mensen te lui waren om te begrijpen waar ze mee bezig zijn.
Ik snap echt niet wat het probleem nou is, ik vraag simpelweg of het mogelijk is en geef in de start post al aan dat ik geen commentaar wil hebben over waarom, de veiligheid, gebruiksgemak of wat dan ook omdat ik weet dat het mogelijk is maar zie ff niet in hoe.
Als je zo graag wilt afgeven op dingen kan ik je met 1 ding gerust stellen en dat is dat dit nooit online komt te staan en dat het alleen maar om de theorie gaat.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$connection_db1 = mysql_connect('localhost', 'root', '');
mysql_select_db('db1', $connection_db1);
$connection_db2 = mysql_connect('localhost', 'root', '');
mysql_select_db('db2', $connection_db2);
$res_db1 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db1);
$res_db2 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db2);
?>
$connection_db1 = mysql_connect('localhost', 'root', '');
mysql_select_db('db1', $connection_db1);
$connection_db2 = mysql_connect('localhost', 'root', '');
mysql_select_db('db2', $connection_db2);
$res_db1 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db1);
$res_db2 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db2);
?>
Volgens mij moet dit werken
kevin schreef op 11.04.2008 10:32:
Ik snap echt niet wat het probleem nou is, ik vraag simpelweg of het mogelijk is en geef in de start post al aan dat ik geen commentaar wil hebben over waarom, de veiligheid, gebruiksgemak of wat dan ook omdat ik weet dat het mogelijk is maar zie ff niet in hoe.
Als je zo graag wilt afgeven op dingen kan ik je met 1 ding gerust stellen en dat is dat dit nooit online komt te staan en dat het alleen maar om de theorie gaat.
Terence schreef op 11.04.2008 10:30:
stop dan alsjeblieft met programmeren, wij komen het vaak genoeg tegen bij klanten hier op mijn stage en hebben uren werk aan dit soort dingen, puur omdat mensen te lui waren om te begrijpen waar ze mee bezig zijn.
Ik snap echt niet wat het probleem nou is, ik vraag simpelweg of het mogelijk is en geef in de start post al aan dat ik geen commentaar wil hebben over waarom, de veiligheid, gebruiksgemak of wat dan ook omdat ik weet dat het mogelijk is maar zie ff niet in hoe.
Als je zo graag wilt afgeven op dingen kan ik je met 1 ding gerust stellen en dat is dat dit nooit online komt te staan en dat het alleen maar om de theorie gaat.
Dat is misschien waar maar misschien pas je deze foute methodes dan ook toe bij dingen die wel ooit online komen te staan. En dan kom je hier huilen dat het traag is en/of niet goed werkt? Bespaar je zelf een hoop moeite en leer het goed aan. Overigens snap ik niet wat je wilt bereiken met data uit 2 databases te halen. Data die bij elkaar hoort (per applicatie) hoort gewoon in dezelfde database thuis.
Misschien moet je even uitleggen waarom je het in twee databases wilt. Want ik begrijp het nut er niet echt van. Het kost veel meer tijd en geld, plus dat je waarschijnlijk al je query's opnieuw moet gaan programmeren in je website, wat niet een leuk klusje is als je een zeer complex systeem hebt.
SELECT * FROM db1.tabel1, db2.tabel1
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
//je mag zelf fout afhandeling doen
$connection = mysql_connect('localhost', 'user', 'pass');
$query = 'SELECT db1.tabel.kolum,db2.tabel.kolom';
//Je moet dan wel bij alle query's db.tabel.kolom i.p.v. tabel.kolom
?>
//je mag zelf fout afhandeling doen
$connection = mysql_connect('localhost', 'user', 'pass');
$query = 'SELECT db1.tabel.kolum,db2.tabel.kolom';
//Je moet dan wel bij alle query's db.tabel.kolom i.p.v. tabel.kolom
?>
Het is zoals eerder genoemd wel handig om je data structuur na te kijken.
Ik wil gewoon simpelweg weten of er een manier is om in 2 databases the SCHRIJVEN en uit 1 database gegevens te halen. Dit zou ik graag doen met een functie die ervoor zorgt dat ik niet steeds dubbele queries moet aanmaken..
Zeggen dat mijn database structuur niet goed is kan niet aangezien het helemaal niks heeft te maken met de structuur en ik ook niet vraag wat jullie denken dat slim is. Ik wil gewoon simpelweg weten hoe dit voor elkaar te krijgen..
Bvd,
Nivek.
Jason de Ridder schreef op 11.04.2008 10:42:
Volgens mij moet dit werken
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$connection_db1 = mysql_connect('localhost', 'root', '');
mysql_select_db('db1', $connection_db1);
$connection_db2 = mysql_connect('localhost', 'root', '');
mysql_select_db('db2', $connection_db2);
$res_db1 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db1);
$res_db2 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db2);
?>
$connection_db1 = mysql_connect('localhost', 'root', '');
mysql_select_db('db1', $connection_db1);
$connection_db2 = mysql_connect('localhost', 'root', '');
mysql_select_db('db2', $connection_db2);
$res_db1 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db1);
$res_db2 = mysql_query("UPDATE tabel SET veld = veld + 1", $connection_db2);
?>
Volgens mij moet dit werken
Mee eens.
$link_db2 = mysqli_connect(/*zoek maar lekker zelf op*/);
mysqli_query($link_db1,$query) ; /*query in db1*/
mysqli_query($link_db2,$query) ; /*query in db2*/
Asje. En kom asjeblieft niet huilen als het achteraf toch mis blijkt te zijn
Jongens, ik stel het heel erg op prijs dat jullie me proberen te helpen, maar zo moet ik toch steeds alle queries dubbel uitvoeren? Ik vraag nu geloof ik in elke post of het mogelijk is een functie te maken die er voor zorgt dat je het niet steeds dubbel hoef te doen en elke keer krijg ik van deze reacties.. Waarschijnlijk goed bedoeld, maar blijkbaar lezen jullie de posts ofzo niet goed want dat dit werkt wist ik een aantal jaar.
Op een andere manier gaat niet.
kevin schreef op 11.04.2008 14:31:
.. functie te maken die er voor zorgt dat je het niet steeds dubbel hoef te doen ...
Je kan een functie maken die dat doet. Maar dan nog zal je in die functie twee query's moeten hebben. Met één query twee databases tegelijk updaten gaat niet.
tuurlijk, dat snap ik. Maar ik vind het zinloos om alle queries in mijn script aan te passen + te verdubbelen. Als ik nou een functie kan maken die alleen het Selecten uit 1 database haalt en de rest dubbel doet. Zou dit werken en hoe kan je het beste te werk gaan.