# Zwei unabhängige MySQL-Tabellen zeitgleich ändern



## Javandroid (10. Mrz 2015)

Hallo zusammen,

Ich hoffe jemand kann mir helfen.
Würde gerne zwei unabhängige MySQL-Tabellen zeitgleich ändern.

Mit:

```
<?php
$a = $_POST['c'];
$b = $_POST['d'];

$host="x"; // Host name
$username="y"; // Mysql username
$password="z"; // Mysql password
$db_name="xx"; // Database name
$tbl_name="xxx"; // Table name

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database
$sql="UPDATE $tbl_name SET zelle1='$a' WHERE zelle2='$b'";
$result=mysql_query($sql);

if($result){

	        $response["success"] = 1;
	        $response["message"] = "message";

	        die(json_encode($response));
}

else {
               echo "ERROR";
}

?>
```
kann Ich eine Tabelle mit übergebenen Werten anpassen. Wie kann Ich nun diese übergebenen Werte auch zeitgleich in einer Weiteren unabhängigen Tabelle anpassen? 

Mit welchem Befehl kann man Werte auslesen und zwischenspeichern bevor mal diese in der Tabelle ändert?

Vielen Dank vorab und Gruß


----------



## Thallius (10. Mrz 2015)

Ohne das ich jetzt wirklich verstanden habe was du machen willst und schon gar nicht wozu das gut sein soll und erst recht nicht was du unter zeitgleich verstehst aber vielleicht hilft dir das Stichwort "Transaction" etwas

Gruß

Claus


----------



## Javandroid (10. Mrz 2015)

Plan ist: Ich habe zwei unabhängige MySQL-Datenbanken und möchte mit einer php-Datei die übergebenen Werte in beiden Datenbanken ändern. Wie ist das möglich?


----------



## Thallius (10. Mrz 2015)

Indem du die Werte reinschreibst?


----------



## fehlerfinder (11. Mrz 2015)

Javandroid hat gesagt.:


> Plan ist: Ich habe zwei unabhängige MySQL-Datenbanken und möchte mit einer php-Datei die übergebenen Werte in beiden Datenbanken ändern. Wie ist das möglich?



Das enthält nun keine zusätzlichen Informationen zu deinem Ursprungs-Beitrag... Was ist denn genau dein Problem? Ich vermute mal nicht, dass du nicht in der Lage bist, zwei SQL-Statements nacheinander aufzurufen, um Werte in zwei Tabellen zu schreiben, oder? ;-)

Vielleicht liest du dir den Beitrag von #2 Thallius nochmal durch und bemühst dich, Licht ins Dunkel zu bringen - das hilft. Ehrlich! ;-)


----------



## Dompteur (11. Mrz 2015)

Javandroid hat gesagt.:


> Plan ist: Ich habe zwei unabhängige MySQL-Datenbanken und möchte mit einer php-Datei die übergebenen Werte in beiden Datenbanken ändern. Wie ist das möglich?


Solange du es nur mit einer Datenbank zu tun hast, geht so etwas recht einfach. Du setzt alle Datenbankänderung in einer Transaktion ab und beim Commit wird alles in der Datenbank gespeichert. Wenn eine der Änderungen zu einem Fehler führt, dann werden alle Änderungen zurückgenommen (=Rollback).

Bei 2 Datenbanken wird es komplizierter. Da brauchst du einen Transaktionsmanager, der dafür sorgt, dass du entweder beide Änderungen durchbekommst oder beide zurückgenommen werden. 
Du kannst nach folgenden Begriffen suchen: verteilte transaktion, Distributed transaction, two phase commit.

Ich bin zwar kein PHP Entwickler, aber vielleicht hilft dir dieser Artikel weiter: PHP: XA/Distributed Transactions - Manual


----------



## Joose (11. Mrz 2015)

Mal von deinem Problem abgesehen ... wo ist hier der Zusammenhang mit Java? Bitte achte das nächste mal auf den richtigen Bereich wo du deinen Thread aufmachst.


----------



## Tobse (8. Jul 2015)

[EDIT]
Ohh, uppsala... habe aufgrund des neuen Forendesigns das Datum völlig übersehen. Sorry für die Leichenschändung!
[/EDIT]

Ich glaube das Problem vom TE ist sehr viel simpler, als ihr es hier darstellt.

@TE: Du benutzt die mysql-Extension. So, wie du sie verwendest, kannst du nur eine Verbindung zu *einer *Datenbank gleichzeitig aufrechterhalten. Ausserdem ist sie veraltet und wird bald komplett entfernt.
Schau dir deshalb mysqli oder besser PDO an.

Folgendermaßen geht das mit mysql:


```
$connZuDB1 = mysql_connect($host1, $username2, $password1);
$connZuDB2 = mysql_connect($host2, $username1, $password2)
mysql_select_db($db_name1, $connZuDB1);
mysql_select_db($db_name2, $connZuDB2);

$query = "HIER DAS SQL, WELCHES DATEN ÄNDERT";

mysql_query($query, $connZuDB1);
mysql_query($query, $connZuDB2);

mysql_close($connZuDB1);
mysql_close($connZuDB2);
```

P.S.: Im Ernst: Den Code, den ich dir hier gebe (und der, den du gepostet hast), ist auf dem Stand von vor 20 Jahren. Egal, welches PHP+MySQL Tutorial/Buch du gerade bearbeitest - _nimm ein anders, neueres!_
z.B.:
http://www.amazon.de/Einstieg-PHP-M...2?ie=UTF8&qid=1436373779&sr=8-2&keywords=PHp5
oder
http://www.amazon.de/Einstieg-PHP-5-5-MySQL-Programmieranfänger/dp/3836224895/ref=sr_1_8?ie=UTF8&qid=1436373779&sr=8-8&keywords=PHp5
oder
http://www.amazon.de/PHP-5-4-MySQL-...?ie=UTF8&qid=1436373779&sr=8-10&keywords=PHp5


----------

