Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Query hat unterschiedliche Ergebnisse (https://www.delphipraxis.net/89043-query-hat-unterschiedliche-ergebnisse.html)

TheMiller 25. Mär 2007 00:35

Datenbank: MySQL • Version: 4 • Zugriff über: PHP / Indy

Query hat unterschiedliche Ergebnisse
 
Hey ho!

Ich habe ein Problem, was mich tierisch zum Grübeln bringt. Und zwar habe ich php-Skripte, die ich per Indy-HTTP anspreche. Mache ich dies und führe eine query aus (ausgewertet durch den Parameter "action") bekomme ich bei dem Ergebnis von mysql_affected_rows() "0" raus. Führe ich diese query aus, indem ich das Script in einem Browser öffne und den parameter dranhänge, dann kommt 1 eins.

So sieht's aus:

SQL-Code:
SELECT * FROM kunden;
Ich habe auch überprüft, dass der Parameter übergeben wird. Das ist der Fall. Von allen anderen Scripten aus funzt es auch. Es ist nur diese eine Datei, die mir per Indy KEINERLEI query ausführt, aber auch durch mysql_error() KEINEN Fehler zurückgibt. Die Verbindung steht auch, da es ja durch direktes Ausführen mit dem Browser geht.

Ich bin VERZWEIFELT! :wall: :wall: :evil:

mkinzler 25. Mär 2007 09:04

Re: Query hat unterschiedliche Ergebnisse
 
Stimmt der Rest des Ergebnisses auch nicht oder nur die Ausgabe der Api?
Was willst du damit erreichen?(affected_rows?)

TheMiller 25. Mär 2007 12:37

Re: Query hat unterschiedliche Ergebnisse
 
Hm...

also, die query gibt es falsches resultset zurück, wenn die Seite per idhttp ausgeführt wird. Eine einfache

SQL-Code:
Select * from [tabelle]
müsste aus meiner test-db 10 Datensätze, also mysql_affected_rows() = 10, zurückgeben. Das ist auch der Fall, wenn ich die Seite im Browser öffne. Doch aus dem Programm heraus

Delphi-Quellcode:
idhttp.get('http://domain.tld/verz/seite.php?action=zeigekunden');
Hat das Ergebnis 0 zufolge, obwohl der Parameter action im PHP-Skript richtig ankommt. Es werden aus diesem Skript KEINE Querys ausgeführt, aber aus den anderern dazugehörigen schon.

Das ist sehr merkwürdig, zumal ich noch nichtmal sagen kann, dass entweder Delphi, also idhttp, oder die MySQL-DB-Version (getestet auf 4 und 5) dran schuld ist.

Achja, auf meinem Server zu Hause funktioniert es wundeerbar, da gibt's kein Problem. Aber bei Servern, die direkt im Internet stehen schon. Da tritt deer Fehler auf. Obwohl ich auch ins Internet gehe, um meinem privaten Server zu erreichen (DynDNS), funktioniert es dort. Und es sind die gleichen MySQL-Versionen

Sehr merkwürdig :gruebel:

mkinzler 25. Mär 2007 12:38

Re: Query hat unterschiedliche Ergebnisse
 
Zeigt er das Ergebnis der Abfrage an?

TheMiller 25. Mär 2007 13:19

Re: Query hat unterschiedliche Ergebnisse
 
Nein. Es ist leer!

Also, wenn ich aus dem programm raus mir das Ergebnis zurückgeben lasse

Delphi-Quellcode:
var
  s: String;
  idhttp: TIdHttp;
begin
  idhttp:=TIdHTTP.Create(nil);
  s:=idhttp.Get('....');
  ShowMessage(s);
end;
ist das Ergebnis leer. Aber wenn ich im PHP-Script ein normales

Code:
echo "test";
mit dranhänge, dann gibt er mir zusätzlich zum leeren Ergebnis das Wort "test" mit aus.

TheMiller 25. Mär 2007 21:20

Re: Query hat unterschiedliche Ergebnisse
 
Ich habe jetzt mal versucht, ein neues Programm zu erstellen und lasse genau die gleiche Funktion aufrufen und der selbe Fehler tritt auf. Es scheint, als würde die MySQL-Datenbank eine falsche Antwort geben, wenn sie durch mein Programm über das PHP-Script gefragt wird bzw gibt NULL, also keine Antwort, aber auch keinen Fehler zurück. Im Gegensatz zum direkten Aufrufen der PHP-Seite. Da klappt es auch so wunderbar. Es liegt also nich am Delphi-Programm...

Was kann da los sein?

alcaeus 25. Mär 2007 22:51

Re: Query hat unterschiedliche Ergebnisse
 
mysql_affected_rows() gibt dir bei einem SELECT einfach nur Schwachfug aus.
Ich zitiere http://de2.php.net/mysql_affected_rows:
Zitat:

Get the number of affected rows by the last INSERT, UPDATE, REPLACE or DELETE query associated with link_identifier.
Versuchs mal mit mysql_num_rows()

Greetz
alcaeus

TheMiller 25. Mär 2007 22:55

Re: Query hat unterschiedliche Ergebnisse
 
Hat genau das selbe Ergebnis geliefert. Lag aber nur daran - ich habe es gerade gelöst - dass ich zum Test mehrere Server angegeben hatte und einfach die Server verwechselt habe. Denn bei mir zu Hause hat es ja funktioniert. Wie gesagt, richtiger Server - richtiges Ergebnis.

Ich danke euch trotzdem! :dp:

alcaeus 25. Mär 2007 23:01

Re: Query hat unterschiedliche Ergebnisse
 
Nichtsdestotrotz lautet die korrekte Funktion fuer dein Problem mysql_num_rows(), nicht mysql_affected_rows() ;)

Greetz
alcaeus

TheMiller 25. Mär 2007 23:03

Re: Query hat unterschiedliche Ergebnisse
 
Gut, das kann stimmen. Hab ich anders noch nicht ausprobiert - werde ich mir aber merken. Danke Dir


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 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