Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Insert into in 2 verschiedene Datenbanken-wie?





Frage

Hallo, ich hab da nen kleines Problem. Ich möchte Daten in zwei verschiedene Datenbanken speichern, die auf dem gleichen Server liegen. Dazu habe ich folgendes gemacht: [code] ... //in Datenbank act_login speichern include 'sessionhelpers.inc.php'; mysql_select_db("act_login"); $eintragen="INSERT INTO login (aktivierung_act, aktivierung_user, aktivierungscode, benutzername, pass, mail, anrede, firma, name, vorname, strasse, ort, plz, land, homepage, telefon, telefax, newsletter, bemerkung, reg_zeit)" ."VALUES('0', '0', '$aktivlink', '$benutzername','$pass','$email','$anrede','$firma','$name','$vorname','$strasse','$ort','$plz','$land','$homepage','$telefon','$telefax','$newsletter','$bemerkung', now() )"; //mysql_query($eintragen); //echo $eintragen; //in Datenbank wbb eintragen connect_wbb(); mysql_select_db("wbb"); $eintragen_wbb="INSERT INTO bb1_user_table (username, userpassword, useremail, regemail, groupid, activation, bbcode, users_may_email, mods_may_email, regdate )"."VALUES('$benutzername', '$pass', '$email', '$email', '3', '1', '1','1','1', now() )"; //mysql_query($eintragen_wbb); ... [/code] In include 'sessionhelpers.inc.php'; wird automatisch die Funktion connect() aufgerufen: [code] function connect() { $con=mysql_connect('localhost','root','XXX') or die (mysql_error()); mysql_select_db('act_login',$con) or die (mysql_error()); } [/code] In der Funktion connect_wbb() steht: [code] function connect_wbb() { $con_wbb=mysql_connect('localhost','root','XXX') or die (mysql_error()); mysql_select_db('wbb',$con_wbb) or die (mysql_error()); } [/code] Mein Problem ist nun, dass er in die 2. Datenbank probemlos speichert, also in Datenbank wbb, aber in der ersten, also act_login, bekomme ich folgenden Fehler angezeigt: Table 'wbb.login' doesn't exist. Hat jemand eine Lösung?? Danke, Kathrin

Antwort 1 von semi

Übergebe die Verbindung an mysql_query
mysql_query ( string Anfrage [, resource Verbindungs-Kennung])

also

$db1 = mysql_connect(...);
$db2 = mysql_connect(...);
...
...
mysql_query(..., $db1);
mysql_query(..., $db2);



Antwort 2 von kathrin-77

Hm, also ich kriegs irgendwie nicht gebacken. Kann mir das jemand an meinem Beispiel zeigen??
Ich habe nun folgendes gemacht:

...
//in Datenbank act_login speichern
include 'sessionhelpers.inc.php';
mysql_select_db("act_login");
$eintragen=mysql_query("INSERT INTO login (aktivierung_act, aktivierung_user, aktivierungscode, benutzername, pass, mail, anrede, firma, name, vorname, strasse, ort, plz, land, homepage, telefon, telefax, newsletter, bemerkung, reg_zeit)"
."VALUES('0', '0', '$aktivlink', '$benutzername','$pass','$email','$anrede','$firma','$name','$vorname','$strasse','$ort','$plz','$land','$homepage','$telefon','$telefax','$newsletter','$bemerkung', now() )",$con);
//mysql_query($eintragen);
//echo $eintragen;

//in Datenbank wbb eintragen
connect_wbb();
mysql_select_db("wbb");
$eintragen_wbb="INSERT INTO bb1_user_table (username, userpassword, useremail, regemail, groupid, activation, bbcode, users_may_email, mods_may_email, regdate )"."VALUES('$benutzername', '$pass', '$email', '$email', '3', '1', '1','1','1', now() )";
mysql_query($eintragen_wbb,$con_wbb);
...

Nun bekomme ich folgende Fehlermeldung:
mysql_query(): supplied argument is not a valid MySQL-Link resource in /opt/lampp/htdocs/Verzeichnis/login/registrierung.php on line 227 U N D
mysql_query(): supplied argument is not a valid MySQL-Link resource in /opt/lampp/htdocs/Verzeichnis/login/registrierung.php on line 237

In Zeile 227 steht:
."VALUES('0', '0', '$aktivlink', '$benutzername','$pass','$email','$anrede','$firma','$name','$vorname','$strasse','$ort','$plz','$land','$homepage','$telefon','$telefax','$newsletter','$bemerkung', now() )",$con);

In Zeile 237:
mysql_query($eintragen_wbb,$con_wbb);

Was mache ich falsch?

Danke


Antwort 3 von semi

$db1 = mysql_connect(...);
// Wenn connect gescheitert
if(mysql_errno())
{
  // Fehlerbehandlung
}
mysql_select_db(..., $db1);
// Wenn select_db gescheitert
if(mysql_errno())
{
  // Fehlerbehandlung
}
mysql_query(..., $db1);
// Wenn query gescheitert
if(mysql_errno())
{
  // Fehlerbehandlung
}
...
$db2 = mysql_connect(...);
... // Fehlerbehandlung
mysql_select_db(..., $db2);
... // Fehlerbehandlung
mysql_query(..., $db2);
... // Fehlerbehandlung

Schau Dir die Beschreibung der mysql-Funktionen im PHP-Handbuch an.