2 DB Connections innerhalb eines Scripts

Ja das muss leider sein.
Zum Verständnis, es handelt sich dabei um einen OSC Shop.
Der ist halt voll mit eigenen Funktionen die ich nicht zu ändern vermag.

Hier noch die Funktionen für die Abfragen vielleicht nutzt das was:

PHP:
  function tep_db_query($query, $link = 'db_link') {
    global $$link;

    if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
      error_log('QUERY ' . $query . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
    }

    $result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());

    if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
       $result_error = mysql_error();
       error_log('RESULT ' . $result . ' ' . $result_error . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
    }

    return $result;
  }


 function tep_db_fetch_array($db_query) {
    return mysql_fetch_array($db_query, MYSQL_ASSOC);
  }

  function tep_db_num_rows($db_query) {
    return mysql_num_rows($db_query);
  }

Es wäre mir wirklich eine große hilfe wenn jemand eine Idee hätte warum das nicht funktioniert.
Ich will ja gar keine fertige Lösung.

Viele Grüße.
 
Ich hab grad mal was getestet.
Du kannst keine zwei verschiedenen Datenbanken waehlen wenn Du 2 mal mit dem selben Host verbindest. Soll heissen wenn Du z.B. 2 mal localhost angibst.
Es funktioniert aber wenn Du einmal localhost und einmal 127.0.0.1 angibst.

Beispiel:
PHP:
<?php
$user="";
$password="";
$dbname1="";
$dbname2="";
$db1=mysql_connect("localhost",$user,$password);
$db2=mysql_connect("127.0.0.1",$user,$password);
mysql_select_db($dbname1,$db1);
mysql_select_db($dbname2,$db2);
$tables_db1=mysql_query("show tables",$db1);
$tables_db2=mysql_query("show tables",$db2);
while ($table=mysql_fetch_row($tables_db1))
	{
		print_r($table);
		echo '<br>';
	}
echo '<hr>';
while ($table=mysql_fetch_row($tables_db2))
	{
		print_r($table);
		echo '<br>';
	}
mysql_close($db1);
mysql_close($db2);
?>
 
Und genau das ist des Rätsels Lösung.
SO einfach und ich hab mir die ganze Nacht um die Ohren geschlagen.

Ich danke Dir recht herzlich.

Gruss
 
Nichts zu danken.

Und weiterhin viel Erfolg.

Falls jetzt alle Fragen geklaert sind denk bitte daran den Thread als erledigt zu markieren, falls nicht schon geschehen.
 
glück, hier war ich angemeldet =)

Lange her aber dieser Thread hat mir echt geholfen! Hab ebenfalls das Problem gehabt.
Ein Forum was local auf mysql zugreift und mein script was leider nochmal seperat zugreifen musste. Nach knapp 5 Stunden suchen hab ich diese rettende Lösung gefunden =)

thx! auch wenn beiträge länge her.

PS: wenn ich mich nich überall anmelden müßte hätt ich schon so manch Dankesagungen los gelassen *fg
 
Bei der ganzen Sache habe ich nur ein PROBLEM!

Wo kann ich hier vermitteln in welcher der beiden DBs das Script jetzt den Eintrag löschen soll?

PHP:
$delete = "DELETE FROM `tabelle`  WHERE `id` = '$delete' LIMIT 1";


Grüße M
 
Datenbanknamen vor die spalte schreiben also:
PHP:
$delete = "DELETE FROM `datenbank.tabelle`  WHERE `id` = '$delete' LIMIT 1"
 
Irgendwie funktioniert das hier nicht :-(

PHP:
$result_gb_entry = mysql_db_query("$kundenname","SELECT * FROM `tabelle` WHERE `id` = '$delete'"); 
		while($row_gb_entry = mysql_fetch_array ($result_gb_entry))
		{
		$secondhost		= 	"localhost";
		$secondname		= 	"dbname";
		$seconduser		= 	"dbuser";
		$secondpasswd		= 	"dbpasswort";

		$deletegbook = "DELETE FROM `$secondname.tabelle`  WHERE id = '$delete' LIMIT 1";
		echo'<div align="center">Dieser Beitrag wurde soeben gelöscht! <a href="?include=cubepage&page=gbook' . $uURL .  '">[zurück]</a></div>';
}
 
Zuletzt bearbeitet:
Probier mal das hier:
PHP:
$result_gb_entry = mysql_db_query("$kundenname","SELECT * FROM `tabelle` WHERE `id` = '$delete'"); 
        while($row_gb_entry = mysql_fetch_array ($result_gb_entry))
        {
        $secondhost        =     "localhost";
        $secondname        =     "dbname";
        $seconduser        =     "dbuser";
        $secondpasswd        =     "dbpasswort";

        $deletegbook = "DELETE FROM `".$secondname.".tabelle`  WHERE id = '$delete' LIMIT 1";
        echo'<div align="center">Dieser Beitrag wurde soeben gelöscht! <a href="?include=cubepage&page=gbook' . $uURL .  '">[zurück]</a></div>';
}
 
Zuletzt bearbeitet:
Immernoch nicht :confused:

Es kommen auch keine Fehlermeldungen! Der Beitrag ist einfach weiterhin da :suspekt:
 
Zurück