Delphi-PRAXiS
Seite 8 von 9   « Erste     678 9      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Komponente: MySQL via PHP-Tunnel (https://www.delphipraxis.net/54644-komponente-mysql-via-php-tunnel.html)

neuronet 26. Okt 2009 13:36

Re: Komponente: MySQL via PHP-Tunnel
 
Nachdem es nun doch eine Reaktion gegeben hat, wird das Projekt endgültig wieder aufgenommen....

xFrankx 29. Okt 2009 13:58

Re: Komponente: MySQL via PHP-Tunnel
 
Ich würde mich sehr darüber freuen. :hello:


Gruß Frank

waldforest 28. Nov 2009 15:51

Re: Komponente: MySQL via PHP-Tunnel
 
Ich befasse mich seit Neustem auch mit dem Thema,
Ziel ist bei mir eine lokale Datenbank mit einer Webdatenbank abzugleichen.

Mit den hier beschriebenen Wegen ist ja zumindets das Auslesen vom Server möglich.
Durch Anpassen der PHP-Datei auch Updates und Insert´s.
Eine Anassung auf Dataset-, Datasourcekomponente würde hier sicher hilfreich sein. Dann kan man doch sicher auf andere Grids (welche auch bearbeitbar sind), zurückgreifen.
Da ich nicht so fit in Komponentenerstellung bin freue ich mich auf die nächsten Schritte, die ich mit Interesse verfolgen werde.

teosuper 13. Jan 2010 09:09

Re: Komponente: MySQL via PHP-Tunnel
 
Hallo,

Ich habe mich auch schon mal mit ein PHP-Tunnel beschäftigt und auch mit der TDataset. Wenn es etwas bringt: fuer die TDataset gibt es beispiele in der MD5code oder MD7Code (Mastering Delphi Bücher).

Als ich die Idee für PHP-Tunnel an ein Kollege erzählt habe, hat der sich dran gesetzt und PHP code geschrieben die eine KbmMemtable compatible textfile erzeugt. Das würde gehen, alternative wäre vielleicht auch om XML vom PHP script zu bekommen die für die TClientDataset geeignet ist.

Aber es ginge noch einfacher: Es ginge auch im Ini format oder in etwas wie
Fields=2
Field1=Name;ftstring;20;no
Field2=Adresse;ftstring;50;no
Records=2
Record1=Teo;Niederlande
Record2=Teo2;Niederlande

(in ein loop zu lesen und auch ohne TDataset verwendbar)
Das wäre in PHP leicht zu coden und zu lesen, in Delphi auch und ich habe hiermit ein experiment gemacht wobei dies in ein TDataset geht (um data zwischen Delphi und Lazarus hin und her zu schicken).

Wenn erwünscht habe ich code der Mastering Delphi demos dabei und auch sources für diese TDataset.

xFrankx 24. Jan 2010 10:39

Re: Komponente: MySQL via PHP-Tunnel
 
Guten morgen,

mal das alte Projekt nach oben zieh :gruebel:


Mal ne kleine Frage ?
Wie sieht es aus wenn der php-tunnel hinter einem htaccess liegt ?





cu Frank

neuronet 25. Jan 2010 20:06

Re: Komponente: MySQL via PHP-Tunnel
 
Hab ich bisher noch nicht ausprobiert... Gute Frage, nächste Frage... :(

mschaefer 25. Jan 2010 21:50

Re: Komponente: MySQL via PHP-Tunnel
 
Schreibrechte braucht man mit php nur wenn man auch aufs Filesystem schreibt. Solange nur zur Datenbank durchgereicht wird und mit Variablen gearbeitet wird ohne Zwischenzuspeichern geht das auch mit nur Lesen-Rechte im htaccess.

Gibt es eigentlich schon Fortschritte im Projekt?

Grüße // Martin

omata 22. Feb 2010 02:27

Re: Komponente: MySQL via PHP-Tunnel
 
Siehe auch klick.

omata 10. Sep 2010 15:51

AW: Komponente: MySQL via PHP-Tunnel
 
@cbsistem: Schon mal den Post über deinem gesehen?

ahab 11. Aug 2011 15:38

AW: Komponente: MySQL via PHP-Tunnel
 
Hallo, da ich euer Forum über google(php tunnel gesucht) gefunden habe, habe ich es auch gleich getestet.
Soweit alles ok, den php tunnel habe ich bissel umgebaut und sende die Daten
über post('abfrage','xyz','dudarfstrein',sql); an die komponente TIdHTTP von indy-client
In der 1ten sql bekomme ich Daten zurück, in der 2ten sql bekomme ich einen Fehler
und weiß nicht mehr weiter.

da ich mir ein phpwbb Installiert habe, kann ich auch gut testen, bei der sql abfrage
sql := 'SELECT user_id,username FROM phpbb_users WHERE user_id < 3'

bekomme ich das in mein Memo, gibts Möglichkeiten über php das nur die Namen gesendet werden ?
array(2{["user_id"]=>string(2)"-1["username"]=>string(9)"Anonymous"}array(2{["user_id"]=>string(1)"2["username"]=>string(8) "Schubert"}

weil diesen String müsste ich zerlegen und mir die namen raus holen. ich hoffe das geht auch anders.


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sql : String;
begin

//  1SQL ok
    sql := 'SELECT user_id,username FROM phpbb_users WHERE user_id < 3'

//  2SQL nicht ok, gibt error
//  sql := 'SELECT user_email FROM `phpbb_users` WHERE `username` = '+chr(39)+'Schubert' + chr(39);

    post('abfrage','xyz','dudarfstrein',sql);



So habe ich mir mal meinen php Tunnel aufgebaut, da ich nicht die Originalen Zugangsdaten weiter an 3te geben wollte, sende ich 3 strings, wenn die ok sind bekommen die richtigen var ihren wert.
da ich in php noch NIE etwas gemacht habe, hoffe ich doch das dies ok ist.


Code:
<?php
  include "LA/phpBB2/config.php";

//  $link = mysql_connect($dbhost,$dbuser,$dbpasswd) or die('DB_FAIL1');
//  mysql_select_db($dbname) or die('DB_FAIL2');
   
  $aktion = $_POST['aktion'];
  $user   = $_POST['user_name'];    //dbuser
  $pass   = $_POST['user_passwort']; //dbname
  $db_pass = $_POST['db_pass'];      //dbpasswd
  $abfrage = $_POST['abfrage'];
 
//dbuser
  if ($user == "xyz") {
  $user = $dbuser;
  }

//dbname
  if ($pass == "dudarfstrein") {
  $pass = $dbname;
  }

//dbpasswd
  if ($db_pass == "123456") {
  $db_pass = $dbpasswd;
  }

switch ($aktion) {
   case "abfrage":
     if ($abfrage != "") {
           mysql_connect($dbhost,$user,$db_pass) or die('DB_FAIL1');
           mysql_select_db($pass) or die('DB_FAIL2');
           $sql = $abfrage;
           $result = mysql_query($sql) OR die('DB_FAIL3');
            while ($row = mysql_fetch_assoc($result))
              {var_dump($row);}
         }
         else echo "Kein Query gefunden";  
   }

mysql_close($link);
?>


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr.
Seite 8 von 9   « Erste     678 9      

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