Verbindung zu einem Datenbankserver mithilfe von Fsockopen- oder Socket -Funktionen und Ausstellungsbefehlen

StackOverflow https://stackoverflow.com/questions/7302273

Frage

Wie streifen wir mithilfe von Socket -Funktionen eine Verbindung zu einem Datenbankserver mit einer beliebigen Programmiersprache her? Ich denke wie die Protokolle. Zum Beispiel SMTP, HTTP, FTP, IMAP. Wir stellen eine Verbindung zu diesen Ports her und geben Comands aus (Befehle ausführen). Wie diese können Sie eine Verbindung zu einem Datenbankserver herstellen (der Port ist 3306) und können wir Befehle ausstellen, die verschiedene Funktionen wie DDL, DML, TCL ausführen können.

Da die Leute einen Datenbankserver sagen, dachte ich, dass es eine Möglichkeit sollte, was ich denke, anstatt die SQL -Funktionen für Programmiersprache wie MySQL_Connect, MySQL_Select oder MySQL_Query zu verwenden ...

Ich möchte Vorschläge, Antworten und Referenzen haben. Möglicherweise verwende ich die entsprechende Suchzeichenfolge in Google nicht, um Informationen dazu zu finden.

War es hilfreich?

Lösung

Sie müssen mit den Servern mit ihren (benutzerdefinierten) Protokollen kommunizieren.

Warum sollten Sie diese Protokolle jedoch neu implementieren? Wenn dies nicht nur akademische Neugierde ist, sind Sie viel besser damit, irgendwelche Bibliotheken zu verwenden, die die DB -Anbieter liefern.

Die Funktionen, über die Sie sprechen (MySQL_Connect, MySQL_Query, ...), handeln im Wesentlichen auf einem Rohsteck, aber sie kennen das Protokoll. Sie nehmen eine SQL -Abfrage und nehmen einen Socket und verarbeiten die Abfrage in die richtigen Daten.

Protokolle auf Dingen wie DB-Servern werden nichtmenschlich lesbar sein. Das HTTP ist im Vergleich zu einem Protokoll, das für kleine Größe und strenge Parsen ausgelegt ist, hübsch und klar. Wenn Sie nicht unbedingt erforderlich sind, würde ich es vermeiden, das Rad neu zu erfinden.

Andere Tipps

"Du nicht". Sofern ein bestimmtes Service sein Protokoll nicht als öffentliche API dokumentiert, ist dies riskant, schwierig und anfällig für Brechen. Das Protokoll könnte sogar Elemente enthalten, die speziell dazu bestimmt sind, dies zu machen. Sie können das Protokoll natürlich Wireshark und umgekehrt, aber Sie wissen nie genau, dass die Definition nicht "am 22. September Änderung alle Qs zu R" enthält.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top