update 6.3.3 -> 6.3.4

Support zu den Modifikationen (MODs) von Entwickler OXPUS für das phpBB 3.0.x
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: update 6.3.3 -> 6.3.4

Beitrag von oxpus »

naja... ich hab den genannten codeblock in der functions.php auskommentiert und habe dann das update des download-mod durchgeführt - ohne probleme.
danach habe ich die kommentarzeichen in der functions wieder entfernt.
Ja und?
Geht dann irgendwas nicht oder funktioniert der Zugriff auf die 2. Datenbank nicht?
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
bce
Beiträge: 116
Registriert: Sa 31. Jan 2009, 14:14

Re: update 6.3.3 -> 6.3.4

Beitrag von bce »

der zugriff auf die 2. db funktioniert perfekt - aber der download-mod funzt fast nicht mehr!

wenn ich z.b. vom index aus auf download klicke, so erscheint die hauptseite des download-mod.
hier wird die kategorie/beschreibung, sowie die anzahl der dateien richtig angezeigt. aber die spalte letzte aktualisierung bleibt komplett leer. (da steht ja normalerweise der name des letzten uploads, sowie uploader und zeit.)

wenn ich nun auf eine kategorie oder unterkategorie klicke so fehlt der download-bereich bis auf den download-footer.


edit: hab die tabelle der externen db nun mit in die foren-datenbank importiert. nun passt wieder alles.
aber wenn man irgendwann mal auf eine externe db zugreifen möchte, hat man das gleiche problem wieder...

man greift ja mittels

Code: Alles auswählen

$sql = "select * from table order by gebdat asc";	
	$result = $db->sql_query($sql);	
	while ($row = $db->sql_fetchrow($result))
auf die in phpbb angegebene db zu.
das signalisiert ja diese db. kann man hier nicht eine zweite einbinden?
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: update 6.3.3 -> 6.3.4

Beitrag von oxpus »

Das ginge schon.
Theoretisch müsste es reichen, die Klasse ein zweites Mal mit einem 2. Namen zu laden.
Allerdings würde man dann auch der Klasse andere Anmeldedaten zur Verfügung stellen müssen.
Das sollte aber dann auch nicht mehr so schwer sein.
Hierfür wäre vielleicht eine 2. config.php nicht verkehrt oder die bestehende würde um die 2. Daten erweitert, so dass man z. B. $dhost_2 oder so verwendet.
Und diese dann in der Klasse verwenden, wenn man diese eben mit einem Parameter aufruft, damit die Klasse eben weiß, welche Verbindungsdaten zu verwenden sind.

Soweit eben die Theorie.
Das zu testen fehlt mir aber momentan selber etwas die Zeit...
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
bce
Beiträge: 116
Registriert: Sa 31. Jan 2009, 14:14

Re: update 6.3.3 -> 6.3.4

Beitrag von bce »

in welcher datei wird die datenbankklasse

Code: Alles auswählen

$db->
erstellt? ... wenn man dort $db2-> hinzufügt?
oder ist das so einfach nicht möglich?

der zugriff auf die 2. datenbank sehe dann so aus

Code: Alles auswählen

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

       while ($row = $db2->sql_fetchrow($result))
die anmeldedaten in der config.php ist das wenigste.
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: update 6.3.3 -> 6.3.4

Beitrag von oxpus »

Definiert wird dieses in der common.php:

Code: Alles auswählen

$db			= new $sql_db();
Mit

Code: Alles auswählen

$db2			= new $sql_db();
hättest du schon das ganze verdoppelt.
Verbunden wird dann mit

Code: Alles auswählen

// Connect to DB 2
$db2->sql_connect($dbhost2, $dbuser2, $dbpasswd2, $dbname2, $dbport2, false, true);
unset($dbpasswd2); // Aus Sicherheitsgründen wird nach dem Connect zur Datenbank die Passwortvariable gelöscht.
in der selben Datei.
Wobei ich jetzt mal hinter jede Variable eine 2 gesetzt habe.
$db2 wäre dann die Klasse, die man für die Abfragen verwenden müsste. Also z. B.

Code: Alles auswählen

$db2->sql_query($sql);
oder

Code: Alles auswählen

$result = $db2->sql_query($sql);
Die Variablen der Funktion müsste man dann in der config.php für die 2. Datenbank definieren.

Soweit zumindest bis hierher die Theorie.
Vielleicht klappt es dann mit dem Zugriff in der functions.php...
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
bce
Beiträge: 116
Registriert: Sa 31. Jan 2009, 14:14

Re: update 6.3.3 -> 6.3.4

Beitrag von bce »

könnte was werden...

die änderungen in der common.php passen. keine fehlermeldung.

wenn ich nun in der functions.php dies

Code: Alles auswählen

$result = $db->sql_query($sql);
in

Code: Alles auswählen

$result = $db2->sql_query($sql);
ändere, so erscheint folgende fehlermeldung:
Fatal error: Call to a member function sql_query() on a non-object in C:\xampp\htdocs\forum\includes\functions.php on line 4232
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: update 6.3.3 -> 6.3.4

Beitrag von oxpus »

Naja, mit

Code: Alles auswählen

global $db2;
solltest du die Klasse in der Funktion schon bekannt machen.

Code: Alles auswählen

global $db
ist ja auch überall drinnen ;)
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
bce
Beiträge: 116
Registriert: Sa 31. Jan 2009, 14:14

Anleitung - Zugriff auf 2. Datenbank

Beitrag von bce »

super! funktioniert!! THX :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;
Benutzeravatar
oxpus
Chief handy-man
Beiträge: 2660
Registriert: Do 13. Dez 2007, 23:06
Wohnort: Irgendwo im I-Net
Kontaktdaten:

Re: update 6.3.3 -> 6.3.4

Beitrag von oxpus »

Danke für die Zusammenfassung.
Karsten Ude
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
bce
Beiträge: 116
Registriert: Sa 31. Jan 2009, 14:14

Re: update 6.3.3 -> 6.3.4

Beitrag von bce »

die db-verbindung sollte noch geschlossen werden...

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();
	}
nun müsste es komplett sein 8-)
Antworten