Hallo, lieber Forumbenutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen, für deine Fragen/Probleme aktuell (zusätzlich) Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
iceman-fx
Beiträge: 467
Registriert: 13. Feb 2007, 16:16
Wohnort: Sachsen
Kontaktdaten: Website

SQL-Fehler bei Abruf eines Wertes mittels getValue(), obwohl Abfrage korrekt

19. Feb 2019, 14:19

Hallo Leute,

ich möchte einfach nur einen Wert aus der Datenbank auslesen, erhalte aber in REX5 neuerdings immer einen SQL-Fehler, wenn der übergebene Parameter 0 ist und damit kein Eintrag in der DB gefunden wurde.

Warning: Field "rex_1520_reflist_types.title" does not exist in result! in /home/www/web88/html/sub_homepage/redaxo/src/core/lib/sql/sql.php on line 675

Code: Alles auswählen

		$service = $db->getValue('id_service');			//hier kommt ein ID-Wert, z.B. "0", raus
			$tmp = rex_sql::factory();
			$tmp->setQuery("SELECT * FROM ".rex::getTable('1520_reflist_services')." WHERE id = '".$service."' LIMIT 0,1");
		$service = $tmp->getValue('title');
Setze ich diese SQL-Abfrage im phpMyAdmin ab ist alles ok. Es kommt nur ein leeres Resultat zurück.
Aber beim Zugriff über getValue allerdings, wird diese Fehlermeldung geworfen.

Die Frage ist ... warum, da ein leeres Resultat ja eigentlich kein Fehler ist?
Und dann ist noch die Frage, wie ich dies sonst abprüfen könnte, damit dieser Fehler nicht geworfen wird?

Getestet mit Rex 5.6.5.

Vielleicht kann mir da einer einen Tipp geben.

PS: wenn bei $service = $db->getValue('id_service'); ein Wert größer 0 raus kommt, ist alles ok.
VG iceman

_____________________________________________________________
www.fotodesign360.de / www.falkomueller.com

Benutzeravatar
runstop64
Beiträge: 367
Registriert: 23. Okt 2012, 21:34
Wohnort: Hamburg
Kontaktdaten: Website Facebook Twitter

Re: SQL-Fehler bei Abruf eines Wertes mittels getValue(), obwohl Abfrage korrekt

20. Feb 2019, 20:20

Der Vergleich hinkt etwas. Eine MySQL-Abfrage ist ja nicht identisch mit der rex_sql Klasse. Und rex_sql wirft halt einen Fehler, wenn die Spalte in der Rückgabe nicht existiert.
Du kannst mit

Code: Alles auswählen

$sql->hasValue('title')
prüfen, ob die Spalte existiert, bevor du sie aufrufst.
Oder du prüfst vor der Abfrage ob die ID größer 0 ist. ID = 0 muss man ja gar nicht an die Abfrage übergeben.
Viele Grüße,
Daniel


studio-ahoi.de | Referenzen | Friends Of REDAXO

Zurück zu „Module/Aktionen [R5]“