AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte MySQL via PHP-Tunnel (über eigene libmysql.dll)
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL via PHP-Tunnel (über eigene libmysql.dll)

Ein Thema von omata · begonnen am 22. Feb 2010 · letzter Beitrag vom 25. Mai 2015
Antwort Antwort
Seite 3 von 10     123 45     Letzte »    
omata
Registriert seit: 26. Aug 2004
Dieses Projekt ermöglicht den Zugriff auf eine MySQL-Datenbank über ein PHP-Skript.

Dabei werden folgende Punkte untersützt:
  • Lesender Zugriff
  • Schreibender Zugriff
  • Transactionsteuerung
  • Auslesen von Systeminformationen
  • Funktioniert auch im Designmodus von Delphi
  • Stellt den Zugriff über TDataset zur Verfügung, damit können alle normalen Datenbankkomponenten verwendet werden
Miniaturansicht angehängter Grafiken
phptunnel.png  
Angehängte Dateien
Dateityp: zip SQLTunnel.zip (1,41 MB, 301x aufgerufen)
Dateityp: rar SQLTunnel_src.rar (4,48 MB, 217x aufgerufen)

Geändert von omata (14. Aug 2011 um 19:27 Uhr)
 
Benutzerbild von Valle
Valle
 
#21
  Alt 24. Feb 2010, 22:15
Hallo,

ich habe mir das PHP-Script eben mal angeschaut und bin dabei auf einen kleinen Gedankenanstoß gekommen. Wie wäre es, statt den MySQL-Funktionen die Socket-Funktionen zu nutzen und so PHP quasi als Proxy zu verwenden? Dies hätte den Vorteil, dass man sich mit MySQL selbst kaum befassen muss und bei richtiger Implementierung alle vorhanden Features gleichzeitig abdeckt. Nachteil ist, dass die Socket-Funktionen nicht überall verfügbar sind.

Interessant wäre auch der Vergleich beider Möglichkeiten, v.a. hinsichtlich der Geschwindigkeit - sowohl die Ausführzeit auf dem Server, als auch der produzierte Traffic. Also wenn du mal Lust hast, dein Projekt weiter auszubauen, hättest du hier eine Möglichkeit.

Liebe Grüße,
Valle
Valentin Voigt
  Mit Zitat antworten Zitat
waldforest

 
Delphi XE3 Enterprise
 
#22
  Alt 25. Feb 2010, 17:15
Hallo,
Sicher mit dem Gedankenastoß die Adresse im Script zu implementieren sind auf einmal alle "Sorgen" verschwunden

Manchmal ist die Lösung gedanklich so weit weg, und die Antwort so nah .
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle
 
#23
  Alt 25. Feb 2010, 17:33
Hi,

ich weiß erlich gesagt nicht so genau, was du mir mit deinem Post sagen willst. Also ich bin mir schon recht sicher mit meinem Gedankenanstoß, ich wüsste auch nicht, warum ich das nicht sein sollte. Was für eine Adresse du meinst weiß ich leider nicht.

Liebe Grüße,
Valle
Valentin Voigt
  Mit Zitat antworten Zitat
waldforest

 
Delphi XE3 Enterprise
 
#24
  Alt 25. Feb 2010, 17:36
Hallo,
nein dein Gedankenanstoß war genau der Richtige, funktioniert auch alles super. Keine weiteren Verbesserungen nötig.

Ich hätte da eigentlich selber drauf kommen können. Ich habe mal wieder zu kompliziert gedacht !!
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle
 
#25
  Alt 25. Feb 2010, 17:38
Achso!

Heißt dass, dass du meine Idee bereits implementiert hast?
Oder funktioniert sie nur "im Gedanken"?

Liebe Grüße,
Valle
Valentin Voigt
  Mit Zitat antworten Zitat
waldforest

 
Delphi XE3 Enterprise
 
#26
  Alt 25. Feb 2010, 17:41
Funktioniert !!!

Nochmals vielen Dank !!!
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#27
  Alt 25. Feb 2010, 19:19
Meine Güte ihr redet ja völlig aneinander vorbei! Bitte lest nochmal (in aller Ruhe und vollständig) was ihr da eigentlich geschrieben habt!

@waldforest: Schön, dass meine Überlegung nicht ganz falsch war und das das jetzt klappt.

@Valle: Das ist ja eine schöne Idee und ich freue mich, wenn du da mal eine Lösung präsentierst. Aber ich glaube nicht das das geht. Wie soll das auf der Serverseite funktionieren? Da bekommt man nur Zugriff auf die Datenbank über z.B. PHP und die dortigen Funktionen, wie du da direkt auf den TCP/IP-Port von der MySQL-Datenbank zugreifen willst ist mir ein Rätsel. Oder kannst du mal ein Beispiel-Skript erstellen, das eben genau das zeigt (nur ganz einfach über PHP-Sockets eine SELECT-Anweisung abschicken und ausgeben). Wobei ich ja noch mehr mache als nur die Kommunikation bereit zustellen. Um Transaktionen zu realisieren kann kein einfacher Verbindungsaustausch alla Proxy realisiert werden, weil eben nach jeder Abfrage die MySQL-Session geschlossen wird. Da ist etwas mehr "Intelligenz" erforderlich. Gut, wenn man das nicht haben will, dann kann dein Vorschlag natürlich auch theoretisch funktionieren. Aber wie konkret?
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle
 
#28
  Alt 25. Feb 2010, 19:58
Sorry waldforest, aber ich glaube omata hat Recht: Irgendwie reden wir aneinander vorbei.

Omata, ich habe eben versucht damit anzufangen meine Idee zu implementieren, bin dann aber leider darauf gestoßen, dass die Umsetzung mit mod_php und wahrscheinlich auch mit PHP allgemein nicht funktionieren wird. Das Problem ist, dass man das Socket, über welches der Apache mit dem Browser kommunziert nicht wie ein normales Socket verwenden kann. Wir brauchen ja einen bidirektionalen Stream, um Daten mit PHP Daten zu empfangen und zum Client zurück zu schicken. Die Kommunikation mit dem MySQL-Server selbst ist nicht das Problem: Socket-Funktionen

Also das Problem ist wohl HTTP. Schade, denn die Sache klang so eigentlich ganz interessant. Mal sehen, ob mir da noch was anderes einfällt. Die Idee alle MySQL-Funktionen quasi als Interface zu implementieren funktioniert zwar, aber ich strebe lieber allgemeinere Möglichkeiten an, die ein Einarbeiten in MySQL komplett unnötig machen. Ansonsten hast du natürlich gute Arbeit geleistet!

Liebe Grüße,
Valle
Valentin Voigt
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#29
  Alt 25. Feb 2010, 20:07
Zitat von Valle:
Also das Problem ist wohl HTTP. Schade, denn die Sache klang so eigentlich ganz interessant. Mal sehen, ob mir da noch was anderes einfällt. Die Idee alle MySQL-Funktionen quasi als Interface zu implementieren funktioniert zwar, aber ich strebe lieber allgemeinere Möglichkeiten an, die ein Einarbeiten in MySQL komplett unnötig machen.
Naja meistens ist nunmal MySQL auf solchen Webseiten als einzige Datenbank vorhanden. Von daher ist nunmal ein Einarbeiten notwendig und mittlerweile ist MySQL ja auch so brauchbar geworden, dass man das Datenbank nennen kann und das da auch Standards richtig funktionieren.
Und natürlich kann man auch alles selber machen, aber hier war ja gerade die Idee, dass man die Datenbankkompoenten, die auf TDataSet aussetzen verwenden kann. Das bekommt man eben nicht so ohne weiteres hin, wenn man alles selber macht.

Aber wie auch immer, es war ja auch nur so eine Idee, Machbarkeit ist zumindest bewiesen.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle
 
#30
  Alt 25. Feb 2010, 20:14
Mh sorry, da habe ich mich wohl etwas unklar ausgedrückt.

Was ich mit Einarbeitung in MySQL meinte, war etwas anderes. Ich selbst habe schon einiges an Erfahrung mit MySQL gesammelt, schließlich bin ich schon einige Jahre in der Webprogrammierung unterwegs. Was ich meinte, war die Standard libmysql.dll von Delphi direkt mit dem MySQL kommunzieren lassen. Quasi über eine Art Socket Proxy. Somit muss man im PHP-Script keine Funktionen a "mysql_query" usw. bereitstellen. Das PHP-Script sollte dann nur dafür sorgen, dass MySQL-Server und Delphi-Client ordentlich miteinander kommunizieren können. Wenn man das richtig macht, dann ist das Script auch für alles mögliche benutzerbar, also z.B. HTTP-Proxys usw.

Hoffe ich hab's jetzt besser formuliert - wenn nicht, dann sollte ich es für heute glaub' ich sein lassen.

Liebe Grüße,
Valle
Valentin Voigt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 10     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz