Externe MySQL Abfrage weiterverarbeiten

GoogleFreak

Grünschnabel
Guten Abend,

Ich arbeite derzeit an einem PHP Projekt, bei dem ein Script das sich auf Server 1 befindet eine MySQL Abfrage an Server 2 sendet. Server 2 soll diese dann verabeiten und eine Antwort senden, die Server 1 verarbeiten kann.

Beispiel:

Server 1:
Sendet "SELECT * FROM users WHERE userid = '1';" an Server 2, z.B. per GET mit file_get_contents("http://www.die-url.de/das/script.php?" ... hier die MySQL Abfrage ...);

Server 2:
Stellt MySQL Verbindung her, führt das ganze per mysql_query() aus und soll alles 1:1 an Server 1 übermitteln, so dass dieser z.B. mysql_fetch_array() oder mysql_num_rows() ausführen kann und das Ergebniss das gleiche ist, wie wenn er es selber durchgeführt hätte.

Ich komme beim übermitteln der Var nicht weiter, weil Server 1 sie nicht mehr weiterverarbeiten kann. :(

Ich weiss, dass es klüger wäre, eine interne / externe MySQL Datenbank zu verwenden, aber ich kann sonst das Projekt nicht so realisieren, wie ich es will.

Habe schon nach einer Lösung bei :google: gesucht, allerdings nichts gefunden.

Vielen Dank für Eure Hilfe!



GoogleFreak
 
Hallo!

Auf Server 2 kannst du die Abfrage ausführen, das Ergebnis in einem Array speichern, das serialisieren und so auf Server 1 wieder in ein Array umwandeln .. könnte wie folgt aussehen ...


Server1:
PHP:
$sql_ergebnis = unserialize(file_get_contents("http://server2.com/query.php?q=SELECT...."));

Server 2 (query.php):
PHP:
// .....

$result = mysql_query($_GET['query']);
$resultdata = array();

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
 $resultdata[] = $row;
}

echo serialize($resultdata);


Damit übermittelst du das Ergebnis direkt von Server2 auf Server1 und kannst ganz normal mit dem Array weiter arbeiten ;-)

Das sich bei mir sämtliche Haare aufstellen (und ja, das sind viele!) wenn ich an die "Sicherheit" bei den Scripts denke, möchte ich dir allerdings auch sagen. Zumindest eine rudimentäre Verschlüsselung / Legitimationsabfrage solltest du einbauen .. sonst könnte man als Man-In-The-Middle viel blödsinn anstellen bzw. auch ohne MITM mit Server2 und diesem Script ein "DROP DATABASE" ausführen ...

Das solltest du umbedingt noch bedenken!

Hoffe dir geholfen zu haben

Schöne Grüße!
 
Zurück