la connessione a un server di database utilizzando funzioni fsockopen o presa e l'emissione di comandi

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

Domanda

Come si collega a un server di database utilizzando qualsiasi linguaggio di programmazione utilizzando le funzioni di socket. Sto pensando come i protocolli. Per esempio smtp, http, ftp, imap. colleghiamo a queste porte e rilasciamo comands (eseguire comandi). Come questi è possibile connettersi a un server di database (la porta è 3306) e possiamo emettere comandi che possono eseguire varie funzionalità come DDL, DML, TCL.

Dal momento che le persone dicono server di database ho pensato a questo come ci dovrebbe qualche possibilità di abilitare fare per quello che penso, invece di utilizzare la programmazione funzioni SQL relative lingue quali il mysql_connect, mysql_select o mysql_query ...

mi piacerebbe avere suggerimenti, risposte e riferimenti. può essere non sto usando la stringa di ricerca rilevanti in google per trovare le informazioni di questo.

È stato utile?

Soluzione

Si avrà bisogno di comunicare con i server utilizzando i loro protocolli (personalizzati).

Perché si vuole reimplementare questi protocolli però? A meno che questa è la curiosità solo accademica, si sta molto meglio utilizzare le librerie DB fornitori della supply.

Le funzioni di cui parli (mysql_connect, mysql_query, ...) sono essenzialmente agendo su un raw socket, ma sanno il protocollo. Prendono una query SQL, e prendono un socket e elaborano la query in dati corretti per inviare.

Protocolli su cose come il DB server stanno per essere non umano leggibile. Il HTTP è abbastanza e chiaro rispetto ad un protocollo progettato per le piccole dimensioni e la rigorosa analisi. A meno che non è assolutamente necessario, vorrei evitare di reinventare la ruota.

Altri suggerimenti

"Non fai". A meno che un particolare servizio documenta il suo protocollo come un'API pubblica, questo è rischioso, difficile, e incline a rompersi da un momento all'altro. Il protocollo potrebbe anche includere elementi specificamente destinati a rendere questo disco. È possibile, naturalmente, Wireshark e decodificare il protocollo, ma non si sa mai con certezza che la definizione non comprende 'Il cambiamento 22 settembre tutto il R. Q'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top