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 5     123 45      
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

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

  Alt 23. Feb 2010, 04:55
Als kleine nette Erweiterung, wäre hier noch die Option "Datenbankserver". Bei manchen Webspace muss man statt localhost explizit einen anderen Datenbankserver angeben, damit man einen Zugriff auf seine MySQL-Datenbank erhält.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#2

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

  Alt 23. Feb 2010, 07:03
Funktioniert wunderbar. Habe es eben mit beiden PHP 4/5 Dateien ausprobiert.
Man muss nur an das http:// vor localhost denken, sonst geht es nicht.

THX
user0815
  Mit Zitat antworten Zitat
Benutzerbild von movietigger
movietigger

Registriert seit: 15. Dez 2004
Ort: Niedernhausen
4 Beiträge
 
Delphi 2006 Professional
 
#3

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

  Alt 23. Feb 2010, 13:31

Das klappt ja hervorragend! Ich bin begeistert von dieser Lösung...
Endlich kann ich ohne Webbrowser auf meine Datenbanken bei meinem Provider zugreifen...

Einzig der Zugriff auf TEXT/MEDIUMTEXT/LONGTEXT und BLOBS ist nicht möglich, kann ich aber verschmerzen...

Ansonsten eine TOP-Lösung!
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#4

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

  Alt 24. Feb 2010, 21:10
Hallo,
erst mal danke, klappt super. Leider nutze ich auch einen Server, der anstelle der localhost eine andere Serveradresse wie bei zu #16,Datenbankserver" beschrieben benötigt.

Was muss man wo wie ergänzen.

Ich habe es selber einmal versucht,und habe FloginU erweitert.

Delphi-Quellcode:
procedure TFLogin.Execute(SQLConnection: TSQLConnection);
begin
  EdURL.Text:=SQLConnection.Params.Values['Hostname'];
  EdDatabase.Text:=SQLConnection.Params.Values['Database'];
  EdUsername.Text:=SQLConnection.Params.Values['User_name'];
  EdPassword.Text:=SQLConnection.Params.Values['Password'];
  EdHost_adr.Text:=SQLConnection.Params.Values['host_adr'];

  if Self.ShowModal = mrOk then begin
    SQLConnection.Params.Values['Hostname']:=trim(EdURL.Text);
    SQLConnection.Params.Values['Database']:=trim(EdDatabase.Text);
    SQLConnection.Params.Values['User_name']:=trim(EdUsername.Text);
    SQLConnection.Params.Values['Password']:=trim(EdPassword.Text);
    SQLConnection.Params.Values['host_adr']:=trim(EdHost_adr.Text);
    SQLConnection.Open;
  end;
end;
aber bekomme den Parameter 'host_adr' nicht in mein PHP-Scipt übertragen.

Im PhP habe ich folgende Ergänzungen eingetragen,
Delphi-Quellcode:
 private function Init() {
    if (isset($_POST['id'])) {
      $_REQUEST[session_name()] = $_POST['id'];   
      session_start(); 
      if (isset($_SESSION['init']) && $_SESSION['init']) {
         return $this->connect($_SESSION['user'], $_SESSION['pass'], $_SESSION['db'], $_SESSION['host_adr']);
      }

      $this->ERROR = 'Fehler bei der Initialisierung.';
    } else {
      session_start(); 
      if (isset($_POST['command']) && $_POST['command'] == 'connect') {
        if (  isset($_POST['user'])
            && isset($_POST['pass'])
            && isset($_POST['db'])
            && isset($_POST['host_adr'])
          )
        {
          if ($this->connect($_POST['user'], $_POST['pass'], $_POST['db'], $_POST['host_adr'])) {
            $_SESSION['init'] = true;
            $_SESSION['user'] = $_POST['user'];
            $_SESSION['pass'] = $_POST['pass'];
            $_SESSION['db'] = $_POST['db'];
            $_SESSION['host_adr'] = $_POST['host_adr'];           
            $this->ID = session_id();
            return true;
          }

        }
      }
    }
    return false;
  }

   private function connect($user, $pass, $database, $host_adr)
   {
      $this->db = mysql_connect($host_adr, $user, $pass);
werde aber mit Scriptfehler abgewiesen, da natürlich die host_adr über die libmysql.dll nicht übertragen wird. Würdest du du den Code für die dll auch noch einstellen, oder die DLL anpassen ?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

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

  Alt 24. Feb 2010, 22:05
Schön das die Lösung auch bei euch funktioniert.

Zitat von movietigger:
Einzig der Zugriff auf TEXT/MEDIUMTEXT/LONGTEXT und BLOBS ist nicht möglich...
Das werde mich mir nochmal ansehen.

Zitat von waldforest:
Leider nutze ich auch einen Server, der anstelle der localhost eine andere Serveradresse ... benötigt.
Kann man dann nicht im PHP-Skript anstelle von localhost eben die nötige Serveradresse eintragen? Warum muss man das vom Delphiprogramm aus machen können. Sorry, aber das verstehe ich noch nicht so ganz.

Zitat von waldforest:
Würdest du du den Code für die dll auch noch einstellen, oder die DLL anpassen ?
Ich kann an der Struktur der DLL ja nichts ändern, sonst wäre es ja kein MySQL-DLL-Klone mehr. Und da die DLL-Struktur diese Angabe nicht kennt, kann ich auch nicht dafür sorgen, dass diese Information an das PHP-Skript übergeben wird.

Das einzige, was möglich wäre, ist diese zusätzliche Information über den Hostname- oder die Database- Information mit einer speziellen Notation mit zu übergeben.

Aber wie gesagt, ich verstehe nicht so ganz, warum das über das Delphiprogramm erfolgen soll. Gibt es den auf ein und dem selben Server die Notwendigkeit über ein und das selbe Skript mehrere Serveradressen angegeben zu können?

Vielleicht könnt ihr mir das nochmal ausführlicher erklären.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#6

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

  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
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#7

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

  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

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#8

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

  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
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#9

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

  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

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#10

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

  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
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 09:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz