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 2 von 10     12 34     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 RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#11
  Alt 22. Feb 2010, 17:54
Download wieder im Beitrag #1 ?
Rolf Warnecke
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#12
  Alt 22. Feb 2010, 18:02
Zitat von RWarnecke:
Download wieder im Beitrag #1 ?
Ja
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#13
  Alt 22. Feb 2010, 18:07
Also, irgendwie funktioniert Dein Upload im Beitrag #1 nicht, da ich immer die gleichen Dateien runterlade. Ich bekomme immer noch den gleichen Fehler.
Rolf Warnecke
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#14
  Alt 22. Feb 2010, 18:12
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.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#15
  Alt 22. Feb 2010, 18:15
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.
Rolf Warnecke
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#16
  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
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

 
Delphi XE2 Professional
 
#17
  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

 
Delphi 2006 Professional
 
#18
  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

 
Delphi XE3 Enterprise
 
#19
  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

 
Delphi 7 Enterprise
 
#20
  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
Antwort Antwort
Seite 2 von 10     12 34     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 05:48 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