ADODB -database wisselen

Carl on jul 26th 2011 10:11 am | Tags: ,

In ADODB kunt u niet meerdere connecties opzetten naar verschillende databases. Indien u cross database tabellen moet uitlezen, zijn er twee opties:

  • De bestaande connectie sluiten en een nieuwe connectie opzetten naar de database waaruit u de benodigde gegevens ophaalt;
  • Wisselen van database.

Examples:
1. Nieuwe connectie

$dbhandle = new ADONewConnection( $DSN_1 );
... queries e.d. ...
$dbhandle->close ();
$dbhandle = new ADONewConnection( $DSN_2 );
... queries e.d. ...
etc, etc

2. Wisselen van database

$dbhandle = new ADONewConnection( $DSN_1 );
... queries e.d. ...
$dbhandle->SelectDB ( $databasename );
... queries e.d. ...

Op het eerste gezicht lijken de verschillen niet groot. Echter (idd), indien een database server zwaar beproeft wordt, maakt het wel degelijk uit. De eerste optie maakt telkens een nieuwe connectie met de server. De server kan maar een aantal connecties aan (configuratie). Daarbij komt nog eens dat iedere bestaande connectie niet meteen beschikbaar is. Er gaat een korte tijd verloren, voordat de connectie daadwerkelijk wordt vrijgegeven. Op een gegeven moment zijn de connecties dus op en iedee request naar de server komt daarmee in de queue. Voor een website betekend dat ‘timeout’ van de pagina.
De tweede optie maakt telkens gebruik van dezelfde resource/connectie en verandert alleen de database waarnaar deze verwijst. Het is wel van belang dat de databases allemaal toegankelijk zijn voor de gebruiker waarmee ingelogd is op de server. Dat is niet voor alle applicaties/websites mogelijk en afhankelijk van de service provider (indien u dat niet zelf bent).

Filed in MySQL,PHP

Comments are closed.