Zwei Datenbankverbindungen?

Hallo zusammen.
Ich versuche gerade folgendes:

Ein PHP Script liest aus diversen Tabellen einer Datenbank bestimmte Datensätze in einer while Schleife aus. Innerhalb dieser whileschleife kann ich mir ja nun wunderbar die Datensätze bei denen die Bedingung zutraf ausgeben lassen.

Jetzt würde diese aber, statt sie ausgeben zu lassen gerne in eine ANDERE Datenbank einfügen lassen.

Leider bekomme ich das nicht hin. Ist das überhaupt möglich?

Hoffe das sind nicht zu wenige Informationen für euch.
 
Ja.
mysql_connect() gibt dir ein Objekt vom Typ resource zurück.
http://de.php.net/mysql_connect

Du kannst mit mysql_connect() mehrere Verbindungen öffnen und bei den mysql-Befehlen (mysql_query(), mysql_select_db(), ...) als Optionalen Parameter eine Verbindungsresource angeben.

PHP:
<?php
$link_in = mysql_connect('localhost', 'user1', 'pass1');
$link_out = mysql_connect('localhost', 'user2', 'pass2', true);
mysql_select_db('database1', $link_in);
mysql_select_db('database2', $link_out);

$result = mysql_query('select * from table1', $link_in);
while ($row = mysql_fetch_assoc($result)) {
mysql_query("insert into table2 (id, key, value) values (" . $row['id'] . ", '" . $row['field1'] . "', '" . $row['field2'] . "');", $link_out);
}
mysql_close($link_in);
mysql_close($link_out);

?>

mfg, metax.
 
Außerdem gäbs folgende möglichkeit, falls man die Daten zuerst alle ausliest und dann alle in die neue Datenbank schreibt:

Hat man beim Verbindungsaufbau zur Datenbank die Verbindungdaten in einer Variable gespeichert kann auch diese problemlos beendet werden. Das ist allerdings nicht unbedingt erforderlich und ich persönlich mache es eigentlich nie. Sinn hätte es, wenn man mehrere Datenbanken abfragt bzw. abfragen muss. Der Befehl dazu lautet so:
PHP:
<?php
$verbindung = mysql_connect("dbbenutzer-xy.mein-hoster",   "schattenbaum","schatten");
mysql_select_db("db1-schattenbaum");
... diverse Abfragen etc. ...
mysql_close($verbindung);
?>
Damit ist die Verbindung in der Variable verbindung gespeichert und wird, nachdem alle Abfragen etc. ausgeführt wurden über den Befehl mysql_close wieder geschlossen.
- http://schattenbaum.net/php
 
Die 2. Verbindung ist nicht unbedingt notwendig. Man kann auch per mysql_query("SELECT * FROM datenbank1.tabelle1, datenbank2.tabelle2"); verschiedene Datenbanken abfragen.
 
Zurück
Oben