dedlfix: PHP-Script als "Gateway" zu einer externen MySQL-DB ?

Beitrag lesen

Tach!

POST, Daten in Richtung Server: Ein Perl-Script, was den POST entgegennimmt, kann einen serialisierten Stream direkt aus STDIN lesen (was in PHP nicht machbar ist).

Diese Aussage ist nicht richtig. Aber warum sollte man das wollen? Alles was benötigt wird, kann im Request übertragen werden, also in $_GET oder $_POST gefunden werden.

Auch was den Serializer betrifft, hier würde ich eine Perl-Lösung bevorzugen, der Perl-Serializer Storable::freeze() arbeitet auf Byte-Ebene, ist damit unabhängig von irgendwelchen Zeichenkodierungen und außerdem sehr performant. Mit Storable::thaw() wird eine Datenstruktur aus dem Stream zurückgewonnen.

Auch hier ist PHP nicht im Nachteil. Der Serializer geht generell von ISO-8859-1 aus, also lässt sich damit auch problemlos UTF-8 übertragen.

GET, Daten vom Server holen: Inwieweit der PHP-Serializer mit NULL-Werten umgehen kann, weiß ich (noch) nicht, Perl's Storable::freeze() kann das. Auch hier würde ich mit reinen Binaries arbeiten, also eher mit Perl.

PHP hat mit NULL kein Problem, auch nicht mit binären Daten.

Ansonsten: Baue serverseitig eine Kontrollstruktur für die Parameter und hinterlege dazu klar definierte SQL-Statements, welche die Responses ausliefern. Also keine SQL-Statements als text/plain per HTTP senden ;)

Du solltest seine Anforderungen genauer lesen. Die Statements seien nicht vorhersagbar. Die letzte Empfehlung gilt aber auch so. Ohne SSL-Verbindung würde ich hier nicht arbeiten wollen. Auch eine Absicherung gegen unberechtigten Script-Aufruf ist Pflicht.

dedlfix.