Zugriff auf 2. Datenbank

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
bce
Mitglied
Beiträge: 93
Registriert: 06.08.2008 22:26
Kontaktdaten:

Zugriff auf 2. Datenbank

Beitrag von bce »

habe daten in einer zweiten datenbank auf die ich aus phpbb heraus zugreifen muss.
in phpbb ist ja eine db angegeben. die daten hierfür werden bei der installstion angegeben und in der config.php gespeichert.

wie kann ich am besten mittels phpbb auf eine zweite datenbank zugreifen?


auf die "normale" greift man ja mittels

Code: Alles auswählen

    $sql = "select * from table";   
       $result = $db->sql_query($sql);   

       while ($row = $db->sql_fetchrow($result))

.....
zu.

das signalisiert ja diese db. kann man hier nicht eine zweite einbinden?

der config.php könnte man ja die daten der 2. datenbank hinzufügen. z.b.

Code: Alles auswählen

$dbname_2 = 'db2';
$dbpasswd_2 = 'pass2'; 
der aufruf für die 2. db könnte wie folgt aussehen:

Code: Alles auswählen

    $sql2 = "select * from table";   
       $result2 = $db2->sql_query($sql2);   

       while ($row2 = $db2->sql_fetchrow($result2))

.....
kann man ein zweites datenbankobjekt anlegen? wenn ja wo muss ich ansetzen?
ich danke für hilfe.
++ Spendentafel für die Homepage - samt Einbauanleitung und Installdateien ++ BC Erlbach +++ Erlbacher Kirwe +++
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: Zugriff auf 2. Datenbank

Beitrag von nickvergessen »

common.php
finde:

Code: Alles auswählen

// We do not need this any longer, unset for safety purposes
unset($dbpasswd);
danach einfügen:

Code: Alles auswählen

$db2			= new $sql_db();

// Connect to DB
$db2->sql_connect($dbhost, $dbuser, $dbpasswd_2, $dbname_2, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);

// We do not need this any longer, unset for safety purposes
unset($dbpasswd_2);
kein Support per PN
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Zugriff auf 2. Datenbank

Beitrag von Pyramide »

Die Original-Datenbankverbindung wird in common.php, Zeile 210 aufgebaut. Die zweite Datenbankverbindung solltest du genauso aufbauen können (du musst lediglich daran denken, diese am Ende wieder zu schließen).
KB:knigge
Benutzeravatar
bce
Mitglied
Beiträge: 93
Registriert: 06.08.2008 22:26
Kontaktdaten:

Re: Zugriff auf 2. Datenbank

Beitrag von bce »

funktioniert!! :P

für interessierte:

öffne common.php

suche nach

Code: Alles auswählen

$db			= new $sql_db();
danach einfügen

Code: Alles auswählen

$db2		= new $sql_db();
suche nach

Code: Alles auswählen

// Connect to DB
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);
danach einfügen

Code: Alles auswählen

// Connect to DB 2
$db2->sql_connect($dbhost2, $dbuser2, $dbpasswd2, $dbname2, $dbport2, false, true);
suche nach

Code: Alles auswählen

// We do not need this any longer, unset for safety purposes
unset($dbpasswd);
danach einfügen

Code: Alles auswählen

unset($dbpasswd2);
in der config.php muss folgendes eingefügt werden:

Code: Alles auswählen

$dbhost2 = 'localhost';
$dbport2 = '';
$dbname2 = 'db2';
$dbuser2 = 'user2';
$dbpasswd2 = 'pass2';
in der functions.php steht folgendes:

Code: Alles auswählen

...
	$sql = "select * from table";	

	$result = $db2->sql_query($sql);	
	
	while ($row = $db2->sql_fetchrow($result)) {
...

$db2->sql_freeresult($result);
und suche nach

Code: Alles auswählen

global $db, $config, $template, $SID, $_SID, $user, $auth, $phpEx, $phpbb_root_path;
ersetzen durch

Code: Alles auswählen

global $db, $db2, $config, $template, $SID, $_SID, $user, $auth, $phpEx, $phpbb_root_path;
++ Spendentafel für die Homepage - samt Einbauanleitung und Installdateien ++ BC Erlbach +++ Erlbacher Kirwe +++
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Zugriff auf 2. Datenbank

Beitrag von Pyramide »

Pyramide hat geschrieben:du musst lediglich daran denken, diese am Ende wieder zu schließen.
Wenn du die Datenbankverbindung grundsätzlich parallel zur ersten öffnest, solltest du diese entsprechend auch parallel zur ersten schließen (garbage_collection()).
KB:knigge
Benutzeravatar
bce
Mitglied
Beiträge: 93
Registriert: 06.08.2008 22:26
Kontaktdaten:

Re: Zugriff auf 2. Datenbank

Beitrag von bce »

ok. danke.

suche in der functions.php nach

Code: Alles auswählen

	// Close our DB connection.
	if (!empty($db))
	{
		$db->sql_close();
	}
danach einfügen

Code: Alles auswählen

	// Close our DB2 connection.
	if (!empty($db2))
	{
		$db2->sql_close();
	}	
++ Spendentafel für die Homepage - samt Einbauanleitung und Installdateien ++ BC Erlbach +++ Erlbacher Kirwe +++
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: Zugriff auf 2. Datenbank

Beitrag von nickvergessen »

downloads/file.php wird manuell $db->sql_close(); gemacht :P
kein Support per PN
Benutzeravatar
bce
Mitglied
Beiträge: 93
Registriert: 06.08.2008 22:26
Kontaktdaten:

Re: Zugriff auf 2. Datenbank

Beitrag von bce »

sollt ich dort wohl auch lieber mal

Code: Alles auswählen

$db2->sql_close();
hinzufügen?
++ Spendentafel für die Homepage - samt Einbauanleitung und Installdateien ++ BC Erlbach +++ Erlbacher Kirwe +++
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5389
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Zugriff auf 2. Datenbank

Beitrag von oxpus »

Ja, das ist damit gemeint ;)
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
bce
Mitglied
Beiträge: 93
Registriert: 06.08.2008 22:26
Kontaktdaten:

Re: Zugriff auf 2. Datenbank

Beitrag von bce »

ok 8)
++ Spendentafel für die Homepage - samt Einbauanleitung und Installdateien ++ BC Erlbach +++ Erlbacher Kirwe +++
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“