Jörg Reinholz: Mehrere Datenbanken in einem Script abfragen?

Beitrag lesen

Moin!

Hi dedlfix,

Ja, es ist kein Problem, mehrere Datenbank-Verbindungen zu öffnen und offen zu halten. Bei mysqli ist es gar nicht anders möglich, als das Handle zur einer Verbindung in einer Variable abzulegen und jeder Funktion zu übergeben. Beim alten, mittlerweile missbilligten mysql war die Übergabe der Verbindung optional.

Ich nutze inzwischen das PDO Objekt.

Würde also ungefähr so vorgehen:

$pdo1 = new PDO('mysql:host=localhost;dbname=datenbankname', 'username', 'passwort');
$pdo2 = new PDO('mysql:host=localhost;dbname=datenbankname', 'username', 'passwort');
$pdo3 = new PDO('mysql:host=localhost;dbname=datenbankname', 'username', 'passwort');
// hier die Verbindungen nutzen

Korrekt?

Nein! Ist zu viel.

Weil es immer gleiche Server hier:localhost ist. In diesem speziellen Fall (und wenn die Rechts stimmen!) braucht es keine weitere Verbindung und das ist auch schädlich, weil die Anzahl der Verbindungen a) limitiert ist und b) jede einzelne Ressourcen beansprucht.

Du kannst die Verbindung einfach mit

$pdo = new PDO('mysql:host=localhost', 'username', 'passwort');

aufbauen und Deine SQL-Statements so gestalten:

statt: $sql="select foo bar from tock";

dann: $sql="select foo bar from datenbankname.tock";

Du verknüpfst also die Tabellen mit den Datenbanken.

Es wäre noch zu erwähnen, dass Du natürlich auch das statement use datenbankname vor jeder wirklichen Abfrage an den Server schicken kannst. Aber auch das wäre hyperliquid.

Jörg Reinholz