Delphi-PRAXiS
Seite 2 von 10     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MySQL via PHP-Tunnel (über eigene libmysql.dll) (https://www.delphipraxis.net/148076-mysql-via-php-tunnel-ueber-eigene-libmysql-dll.html)

RWarnecke 22. Feb 2010 17:54

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Download wieder im Beitrag #1 ?

omata 22. Feb 2010 18:02

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

Zitat von RWarnecke
Download wieder im Beitrag #1 ?

Ja

RWarnecke 22. Feb 2010 18:07

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Also, irgendwie funktioniert Dein Upload im Beitrag #1 nicht, da ich immer die gleichen Dateien runterlade. Ich bekomme immer noch den gleichen Fehler.

omata 22. Feb 2010 18:12

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Das ist sehr schade. Bei mir funktioniert das jetzt wunderbar. Kannst du das Skript über den Browser aufrufen?

Edit: Wobei ich das nur mit Delphi 7 und Delphi 2009 testen kann.

RWarnecke 22. Feb 2010 18:15

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

Zitat von omata
Kannst du das Skript über den Browser aufrufen?

Ja, aber es wird mir nur eine weiße Seite angezeigt. Könntest Du mir vielleicht bitte mal eine aktuelle Version per PN schicken. Vielleicht klappt es da ja besser.

RWarnecke 23. Feb 2010 04:55

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
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.

user0815 23. Feb 2010 07:03

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
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.
:thumb:
THX
user0815

movietigger 23. Feb 2010 13:31

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
:-D :-D
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!

waldforest 24. Feb 2010 21:10

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
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 ?

omata 24. Feb 2010 22:05

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Schön das die Lösung auch bei euch funktioniert.

Zitat:

Zitat von movietigger
Einzig der Zugriff auf TEXT/MEDIUMTEXT/LONGTEXT und BLOBS ist nicht möglich...

Das werde mich mir nochmal ansehen.

Zitat:

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:

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr.
Seite 2 von 10     12 34     Letzte »    

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