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