![]() |
Re: MySQL Zugriff über Delphi 2009
Zitat:
Mit nuSOAP solltest du keine Probleme haben - einfach ausprobieren. Es sind ja nur ein paar PHP-Dateien, die man hochladen muss. Und dann halt selbst verstehen, wie das Ganze funktioniert. Bis denn Bommel |
Re: MySQL Zugriff über Delphi 2009
Eigentlich reicht es für einfache Anwendungen, die keine grösseren Schutz benötigen, völlig aus, über http Kommandos an eine PHP-Datei zu senden, die dann entsprechend der Kommandos die Daten entweder aus der Datenbank ausliest und zurück gibt, oder aber gesendete Daten prüft und in die Datenbank einträgt oder updatet.
Sowas geht recht einfach mit den Indi´s, nem einfachen php-Script und einer mySql-Datenbank auf Deinem Server. Ist wirklich nicht schwer! |
Re: MySQL Zugriff über Delphi 2009
Hallo BBommel und troud.
Da ich keine wichtigen daten wie passwörter übertrage, sondern nur z.B. einen aktuellen Spielstand bräuchte ich keine große Sicherheit. Kannst du mir erklären, wie ich mit Indy eine php datei 'ausführe'? DAnke, mfg |
Re: MySQL Zugriff über Delphi 2009
Du brauchst eigentlich nur auf Deinem Formular die Komponente IdHTTP1 zu platzieren, einen Button erzeugen und ungefähr folgenden Code dem Button zuweisen:
Delphi-Quellcode:
So und hier noch ein ungefährer Aufbau des php-Scripts
procedure TForm1.Button1Click(Sender: TObject);
var Stream:TStringStream; LParams: TStringlist; begin Stream := TStringStream.Create('');//Rückgabe-Stream erstellen LParams := TStringlist.Create; try LParams.Add('cmd=TuWas');//+name); LParams.Add('id='+inttostr(123)); LParams.Add('datum='+DateToStr(Date)); LParams.Add('zeit='+TimeToStr(Time)); try IdHTTP1.Post('http://www.dein_server.de/scripts/feedback.php', LParams, Stream); Showmessage(Stream.DataString); //Antwort von Deinem php-Script except on E: Exception do showmessage('Leider trat folgendes Problem auf: ' + E.Message); end; finally LParams.Free; Stream.Free; end; end;
Delphi-Quellcode:
Ist jetzt nicht getestet, aber so in der Art habe ich das schon ziemlich oft gemacht. Kannst Du Dir anpassen, wie Du´s brauchst.
<?
include("connect.php"); //diese php-datei stellt die verbindung zu sql-datenbank her //übernahme der empfangenen paramter $cmd = $_POST['cmd']; $id = $_POST['id']; $datum = strftime("%Y.%m.%d"); $zeit = $uhrzeit = date("H:i:s"); //ausgabe der daten //das gesendete "TuWas" erhälst du hier also zurück //man kann natürlich auch echte kommandos schicken und diese dann auswerten/reagieren echo($cmd); ?> |
Re: MySQL Zugriff über Delphi 2009
Danke, ich habs mit folgenden Codes probiert:
Delphi-Quellcode:
Die saves.php
Stream := TStringStream.Create('');//Rückgabe-Stream erstellen
LParams := TStringlist.Create; try LParams.Add('name=NonPlusUltra');//+name); LParams.Add('level='+IntToStr(GameState.Level)); try IdHTTP1.Post('http://www.vascodagama.bplaced.net/programs/lotnc/saves.php', LParams, Stream); Showmessage(Stream.DataString); //Antwort von Deinem php-Script except on E: Exception do showmessage('Leider trat folgendes Problem auf: ' + E.Message); end; finally LParams.Free; Stream.Free; end
Code:
Ich bekomme eine leere Message Box also sollte alles funktioniert haben, in der Datenbank ist allerdings noch alles beim alten...
<?php
//übernahme der empfangenen paramter $name = $_POST['name']; $level = $_POST['level']; //ausgabe der daten //das gesendete "TuWas" erhälst du hier also zurück //man kann natürlich auch echte kommandos schicken und diese dann auswerten/reagieren $verbindung = mysql_connect("localhost", "BENUTZERNAME" , "PASSWORT") or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); mysql_select_db("DATENBANKNAME") or die ("Datenbank konnte nicht ausgewählt werden"); $result = mysql_query("UPDATE lotnc SET level='$level' WHERE name LIKE '$name'"); ?> mfG |
Re: MySQL Zugriff über Delphi 2009
Hm, dann versuchs doch mal so, dass DU Dir per Echo die ID des zuletzt geänderten Datensatzes schicken lässt.
Damit sollte es aber klappen: mysql_affected_rows — Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation Dann würde ich mal noch prüfen, ob die 2 Parameter für das Update überhaupt dem upzudatenden Datensatz entsprechen in ihrer Schreibweise. Wenn das alles nix hilft, würde ich es mal mit einem Testinsert der Daten versuchen und einen Blick in die Datenbank riskieren, respektive Dir die ID des neuen Datensatzes per echo schicken lassen. |
Re: MySQL Zugriff über Delphi 2009
Ach gott bin ich blöd! :wall:
ich hab name geschrieben anstatt username jetzt funktionierts super. Vielen dank :) :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 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