fetch row bringt leeres Ergebnis

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

fetch row bringt leeres Ergebnis

Beitrag von Martin Truckenbrodt »

Hallo,
ich setze folgenden Code auf zwei Webseiten ein:

Code: Alles auswählen

if(($edit == "yes") AND ($useremail != ""))
{
	$sql = "SELECT newsletter_id, newsletter_title, newsletter_description FROM ". PHPMN_NEWSLETTER_TABLE ." WHERE newsletter_id = '$id'";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query PHPMN NEWSLETTER information', '', __LINE__, __FILE__, $sql);
	}
	$entry = array();
	if ( !($entry = $db->sql_fetchrow($result)) )
	{
		message_die(GENERAL_ERROR, 'Could not query PHPMN NEWSLETTER information extraction', '', __LINE__, __FILE__, $result);
	}
	$topicalview = $topical;
	if ($topical == "not subscribed")
	{
		$topicalview = $lang['L_PHPMN_NOTSUBSCRIBED'] ;
	}
	$template->assign_block_vars('action', array(
		'ID' => $id,
		'NAME' => $entry[1],
		'DESCRIPTION' => $entry[2],
		'TOPICAL' => $topical,
		'TOPICALVIEW' => $topicalview,
		'USERNAME' => $username,
		'USEREMAIL' => $useremail
		));
}
Auf der eine Webseite funktioniert die Sache. Auf der anderen Webseite (auf dem selben Webserver - selbe DAtenbank - aber andere Tabellenpräfixe) enthält das Array $entry keine Daten. Bin ziemlich ratlos.
Die SQL Abfrage $sql paßt.
Die entsprechende Tabelle lese ich woanders im Skript ohne Probleme nochmal aus.

Kann es an den Daten liegen? Machen da bestimmte Zeichen Probleme?

Danke und Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
ich habe mal noch ein paar Sachen getestet.

Die Variable $id wird korrekt übergeben.
Zur SQL injection Verhinderung verwende ich übrigens folgenden phpBB Code:

Code: Alles auswählen

if ( isset($HTTP_GET_VARS[PHPMN_ID]) || isset($HTTP_POST_VARS[PHPMN_ID]) )
{
	$id = ( isset($HTTP_GET_VARS[PHPMN_ID]) ) ? intval($HTTP_GET_VARS[PHPMN_ID]) : intval($HTTP_POST_VARS[PHPMN_ID]);
}
else
{
	$id = "";
}
Trage ich bei der WHERE Bedingung anstatt $id eine Zahl fest ein, funzt die Sache auch nicht.

:-?

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
ich habe

Code: Alles auswählen

		'NAME' => $entry[1],
		'DESCRIPTION' => $entry[2],
mit

Code: Alles auswählen

		'NAME' => $entry['newsletter_title'],
		'DESCRIPTION' => $entry['newsletter_description'],
ersetzt und die Sache funzt.

Wieso die Sache auf der einen Seite funzte und auf der anderen Seite nicht, ist mir nach wie vor unerklärlich.

Wie lautet die Erklärung?

Danke und Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Antworten

Zurück zu „Coding & Technik“