SQL-String funzt in phpMyAdmin, aber im Skript nicht?

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

SQL-String funzt in phpMyAdmin, aber im Skript nicht?

Postby Metalmorphosis » 06. October 2006 10:11

Moin!

Ich habe ein PHP-Skript, das einen SQL-String erstellt und damit eine Abfrage ausführt. Allerdings bringt die Abfrage nicht immer ein Ergebnis, was mich doch etwas verwirrt, denn eigentlich sollte sie ein Ergebnis bringen. Und was mich noch mehr irritiert, ist die Tatsache, daß der gleiche SQL-String in phpMyAdmin einwandfrei funktioniert, aber im Skript nicht.

Code: Select all
SELECT `REC_ID`, `ARTNUM`, `MATCHCODE`, `BARCODE`, `ME_EINHEIT`, `VPE`, `PR_EINHEIT`, `LAENGE`, `KURZNAME`, `HOEHE`, `GROESSE`, `DIMENSION`, `GEWICHT`, `EK_PREIS` FROM `artikel` WHERE `ARTNUM`='5945 MIX 1'


Gesucht wird nach den Daten von 5945 MIX 1. In einem anderen Forum habe ich gelesen, daß man das Problem mittels "mysql_real_escape_string" oder "mysql_escape_string" beheben kann. Aber hier hilft beides nicht.

Wie kann es sein, daß ein- und derselbe SQL-String im PHP-Skript zum keinem Ergebnis führt, in phpMyAdmin aber doch? Eine Fehlermeldung wird nicht ausgegeben.

MySQL 4.1.14 und PHP 5.1.1...
Metalmorphosis
 
Posts: 36
Joined: 18. May 2006 13:21

Postby Wiedmann » 06. October 2006 10:22

Wie kann es sein, daß ein- und derselbe SQL-String im PHP-Skript zum keinem Ergebnis führt, in phpMyAdmin aber doch?

Weil es dann wohl nicht "ein- und derselbe SQL-String" sein wird.

Lass dir doch einfach mal im Script den SQL-String ausgeben (var_dump von der Variablen die du im Query benutzt).

(BTW eine Spalte vom Typ VARCHAR als ARTNUM zu bezeichnen ist irgendwie ungeschickt. Aber lässt sich wohl bei einer derartigen vorhandenen Artikelliste nicht vermeiden.)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Metalmorphosis » 06. October 2006 11:06

Das da oben ist ja schon der SQL-String, der im Browser testweise ausgegeben wird. Den habe ich mittels Copy & Paste in phpMyAdmin eingetragen und ausführen lassen.

Ich weiß nicht, ob's hilft, aber das ist das Code-Fragment, das den SQL erzeugt (aus einer Funktion, deshalb das $GLOBALS):
Code: Select all
  $sql_methode      = "SELECT";
  $sql_fields       = "`REC_ID`,     `ARTNUM`,  `MATCHCODE`,  `BARCODE`,
                       `ME_EINHEIT`, `VPE`,     `PR_EINHEIT`, `LAENGE`,  `KURZNAME`,
                       `HOEHE`,      `GROESSE`, `DIMENSION`,  `GEWICHT`, `EK_PREIS`";
  $sql_table        = "`{$GLOBALS[tbl_cao_artikel]}`";
  $sql_clausel      = "`ARTNUM`='{$SearchFor}'";
  $sql  = "{$sql_methode} {$sql_fields} FROM {$sql_table} WHERE {$sql_clausel}";
Metalmorphosis
 
Posts: 36
Joined: 18. May 2006 13:21

Postby Wiedmann » 06. October 2006 11:41

Das da oben ist ja schon der SQL-String

Also hast du ein "var_dum($sql);" direkt vor "mysql_query($sql);" gemacht.

Allerdings bringt die Abfrage nicht immer ein Ergebnis,

Und dieses Script bringt dir genau bei diesem SQL-String manchmal ein Ergebnis und manchmal nicht?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Metalmorphosis » 06. October 2006 13:17

Wiedmann wrote:
Allerdings bringt die Abfrage nicht immer ein Ergebnis,

Und dieses Script bringt dir genau bei diesem SQL-String manchmal ein Ergebnis und manchmal nicht?


Genau. Die Artikelnummern sind eindeutig, also muß 5945 MIX 1 ja auch immer gefunden werden, egal ob nun innerhalb des Skripts oder über phpMyAdmin. Nur wird sie innerhalb des Skripts, mit dem obengenannten SQL-String, nicht gefunden. Ich frage mich nun, warum das so ist? Welchen Unterschied kann es da denn geben? Daß die Abfrage in derselben Datenbank vorgenommen wird, ist auch klar.
Metalmorphosis
 
Posts: 36
Joined: 18. May 2006 13:21

Postby Wiedmann » 06. October 2006 13:29

Allerdings bringt die Abfrage nicht immer ein Ergebnis,

Nur wird sie innerhalb des Skripts, mit dem obengenannten SQL-String, nicht gefunden.

Muss ich nochmal Fragen:
Wird innerhalb dieses/deines Scriptes immer nicht gefunden, oder nur manchmal nicht.

(mir geht es nicht um den Unterschied zwischen deinem Script und dem phpMyAdmin-Script)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Metalmorphosis » 06. October 2006 14:38

Dieser Artikel wird nicht gefunden...
Metalmorphosis
 
Posts: 36
Joined: 18. May 2006 13:21

Postby Wiedmann » 06. October 2006 14:42

Dieser Artikel wird nicht gefunden...

:?:
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 4 guests