Rupo: Zugriff auf 2 Datenbanke

Beitrag lesen

Hallo Gemeinde, Ein sichtlich verzweifelter Rupo bittet nochmals um Hilfe

Zzum Problem:

Es ist an einigen Stellen notwendig,
 Operationen auf einer zweiten Datenbank vorzunehmen, wobei die
Verbindung zur Hauptdatenbank weiter aktiv sein muss.

zu diesem zweck hab ich ein Paar Konstanten definiert: constants.php
<?
 /**
 *
 * Constants.php
 *
 **/
 define("host", "localhost");
 define("user", "root");
 define("pass", "");
 define("name", "shop");

define("host2", "localhost"); // nur zu Testzwecken auf localhost, später extern
 define("user2", "root");
 define("pass2", "");
 define("name2", "extern");

die Verbindung zur Datenbank geschieht über: cms_functions.php
/**
 * functions.php
 *
 * beinhaltet die Grundfunktionen des Session-Mangements insbes. Datenbankverbindung
 *
 */
error_reporting (E_ALL);
ini_set('display_errors', TRUE);

class dbconn
  {
  var $connect=false;

/* dbconn - The Class-Construktor */

function dbconn($host,$user,$pass,$name)
    {
    $this->name=$name;
    $this->connect=mysql_connect($host, $user, $pass) or die(mysql_error());
    mysql_select_db($name, $this->connect) or die(mysql_error());

}

/* liefert Datenbank Query */

function query($query) { return mysql_query($query,$this->connect); }
  }

;
$db1= new dbconn(host,user,pass,name);

Und die datenbank-Funktionen liegen in: db_functions.php
/**
 * dbfunctions.php
 *
 */

error_reporting (E_ALL);
ini_set('display_errors', TRUE);
class functions
    {
    var $connect;
    var $db1;
    var $xtpl;

/* Prozedur, um die Navigationsleiste im Top-Contentbereich zu aus der Datenbank zu generieren*/
    function showkats($tpl)
        {
        global $db1, $xtpl, $lang;

$sql="SELECT * FROM " . tbl_catalog . " where cat_parent_id='0' order by cat_description";
        $result=$db1->query($sql);
        $hlp="0";
        if(isset($_GET['katPath'])) $hlp=$_GET['katPath'];

// notwendig, um das Highlighting im Deadlink-Modus zu steuern
        if (empty($_GET["katPath"])&& isset($_GET['productID']))
            {

$hlp=$this->getKatPath($_GET["productID"]);

$hlp=substr(str_replace("-", "_", $hlp), 3, (strlen($hlp) - 4));
            }

$array =explode("_", $hlp);
        $kat   =$array[0];
        if(!empty($array[1])) $subkat=$array[1];

while ($data=mysql_fetch_array($result))
            {
            $xtpl->assign('id', $data["cat_id"]);

// markiert die momentan gewählte Rubrik
            if ($kat == "" . $data["cat_id"] . "")
                $xtpl->assign('active', 'class="active"');
            else
                $xtpl->assign('active', '');

$xtpl->assign('katname', $lang["" . $data["cat_description"] . ""]);
            $xtpl->parse('' . $tpl . '.list');
            }
        }
}

soweit so gut, funktioniert auch wunderbar.

Wenn ich nun eine zweite Instanz hinzufüge in cms_funktions.php

$db1= new dbconn(host,user,pass,name);
$db2= new dbconn(host2,user2,pass2,name2);

liefern mir die Datenbank funktionen allesamt Fehlermeldung, dass
supplied argument is not a valid result ressource. Für mich ein klares Anzeichen, das die Verbindung zur DB1 nicht mehr aktiv ist.

What's going wrong?

mfG
Timo Trallala