Could not remove user XData

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Could not remove user XData

Beitrag von hagily »

Hallo Leute.

Ich habe den xData-mod installiert.

Leider kann sich jetzt keiner mehr registieren.

Fehlermeldung:
Could not remove user XData

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND field_id = LIMIT 1' at line 2

DELETE FROM phpbb_xdata_data WHERE user_id = AND field_id = LIMIT 1

Line : 197
File : functions.php

Zeilen 158-211 der functions.php

Code: Alles auswählen

	function set_user_xdata($user, $which_xdata, $value, $force_user_string = false, $force_xd_string = false)
{
	global $db;

//	$value = trim(htmlspecialchars($value));
	$value = str_replace("\\'", "'", $value);
	$value = str_replace("'", "\\'", $value);

	$user_is_name = ((intval($user) == 0) || $force_user_string);
	$xd_is_name = ((intval($which_xdata) == 0) || $force_xd_string);

	if ($user_is_name)
	{
		$user = trim(htmlspecialchars($user));
		$user = substr(str_replace("\\'", "'", $user), 0, 25);
		$user = str_replace("'", "\\'", $user);
	}

	$user_where = ($user_is_name) ? ('u.username = \'' . $user . '\'') : ('u.user_id = ' . $user );
	$field_where = ($xd_is_name) ? ('xf.code_name = \'' . $which_xdata . '\'') : ('xf.field_id = ' . $which_xdata);

	$sql = "SELECT u.user_id, xf.field_id FROM "
		. USERS_TABLE . " AS u, " . XDATA_FIELDS_TABLE . " AS xf
		WHERE " . $user_where . " AND " . $field_where . "
		LIMIT 1";

	if ( !($result = $db->sql_query($sql)) )
	{
    	message_die(GENERAL_ERROR, 'DB error while finding  a user\'s XData field to edit it', '', __LINE__, __FILE__, $sql);
 	}

 	$row = $db->sql_fetchrow($result);

    $sql = "DELETE FROM " . XDATA_DATA_TABLE . "
    	WHERE user_id = " . $row['user_id'] . " AND field_id = " . $row['field_id'] . "
    	LIMIT 1";

	if ( !($db->sql_query($sql)) )
	{
       	message_die(GENERAL_ERROR, 'Could not remove user XData', '', __LINE__, __FILE__, $sql);
	}

	if ($value !== '')
	{
    	$sql = "INSERT INTO " . XDATA_DATA_TABLE . "
			(user_id, field_id, xdata_value)
			VALUES (" . $row['user_id'] . ", " . $row['field_id'] . ", '" . $value . "')";

=>>>		if ( !($db->sql_query($sql)) ) <<<=
		{
       		message_die(GENERAL_ERROR, 'Could not insert user XData', '', __LINE__, __FILE__, $sql);
		}
	}
}

=>>> <<<= = Zeile 197
Was nun?
was sagt der Parameter $db->sql_query($sql) aus?

Felix
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

+schieb+
keiner ne idee? :cry:
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

+help+

Sind alle vorlauter update sooooo beschäftigt?
Tonchen
Mitglied
Beiträge: 54
Registriert: 26.12.2005 15:09

Beitrag von Tonchen »

Hat denn keiner eine Idee?
Tonchen
Mitglied
Beiträge: 54
Registriert: 26.12.2005 15:09

Beitrag von Tonchen »

*schieb*
Benutzeravatar
Fennias Maxim
Mitglied
Beiträge: 489
Registriert: 12.08.2005 20:16
Wohnort: Technodrome
Kontaktdaten:

Beitrag von Fennias Maxim »

user_id =
field_id =

Das bedeutet das die variablen $row['field_id'] und $row['user_id'] leer sind.

Du musst am besten die ganze fuctions absuchen wo diese wariablen z.B. gesetzt werden, bzw. die instalationsanleitung und die dateien die dabei waren. Guck auch mal da wo die funktion aufgerufen wird. Ich schätz du hast einfach eine arbeits anweisung vergessen.

$db->sql_query($sql)das sagt "Sende die abfrage die in $sql steht an die Datenbank"
Zuletzt geändert von Fennias Maxim am 01.01.2006 19:17, insgesamt 1-mal geändert.
50% aller Fragen können mit der Knowledge Base oder der Forensuche beantwortet werden!
Warum hast du also diesen Thread hier eröffnet?
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

Fennias Maxim hat geschrieben:user_id =
field_id =

Das bedeutet das die variablen $row['field_id'] und $row['user_id'] leer sind.

Du musst am besten die ganze fuctions absuchen wo diese wariablen z.B. gesetzt werden.

nicht ganz.
Lag an der Datenbank
Benutzeravatar
Fennias Maxim
Mitglied
Beiträge: 489
Registriert: 12.08.2005 20:16
Wohnort: Technodrome
Kontaktdaten:

Beitrag von Fennias Maxim »

hagily hat geschrieben:
Fennias Maxim hat geschrieben:user_id =
field_id =

Das bedeutet das die variablen $row['field_id'] und $row['user_id'] leer sind.

Du musst am besten die ganze fuctions absuchen wo diese wariablen z.B. gesetzt werden.

nicht ganz.
Lag an der Datenbank
Jo da gab es wohl keinen user auf den das zutraf.
50% aller Fragen können mit der Knowledge Base oder der Forensuche beantwortet werden!
Warum hast du also diesen Thread hier eröffnet?
Gysl
Mitglied
Beiträge: 9
Registriert: 09.01.2006 23:01

Beitrag von Gysl »

Hallo !

Ich habe ein sehr ähnliches problem. werde aus deinen sachen hier leider nicht schlau, da ich nur wenig ahnung habe.
kannst du mir vielleicht weiterhelfen?

der fehler
Could not remove user XData

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND field_id = LIMIT 1' at line 2

DELETE FROM phpbb_xdata_data WHERE user_id = AND field_id = LIMIT 1

Line : 216
File : functions.php

hier die punctions.php

Code: Alles auswählen

{
	global $db;

//	$value = trim(htmlspecialchars($value));
	$value = str_replace("\\'", "'", $value);
	$value = str_replace("'", "\\'", $value);

	$user_is_name = ((intval($user) == 0) || $force_user_string);
	$xd_is_name = ((intval($which_xdata) == 0) || $force_xd_string);

	if ($user_is_name)
	{
		$user = trim(htmlspecialchars($user));
		$user = substr(str_replace("\\'", "'", $user), 0, 25);
		$user = str_replace("'", "\\'", $user);
	}

	$user_where = ($user_is_name) ? ('u.username = \'' . $user . '\'') : ('u.user_id = ' . $user );
	$field_where = ($xd_is_name) ? ('xf.code_name = \'' . $which_xdata . '\'') : ('xf.field_id = ' . $which_xdata);

	$sql = "SELECT u.user_id, xf.field_id FROM "
		. USERS_TABLE . " AS u, " . XDATA_FIELDS_TABLE . " AS xf
		WHERE " . $user_where . " AND " . $field_where . "
		LIMIT 1";

	if ( !($result = $db->sql_query($sql)) )
	{
 >>>>   	message_die(GENERAL_ERROR, 'DB error while finding  a user\'s XData field to edit it', '', __LINE__, __FILE__, $sql); <<<<
 	}

 	$row = $db->sql_fetchrow($result);

    $sql = "DELETE FROM " . XDATA_DATA_TABLE . "
    	WHERE user_id = " . $row['user_id'] . " AND field_id = " . $row['field_id'] . "
    	LIMIT 1";

	if ( !($db->sql_query($sql)) )
	{
[color=red]       	[b]message_die(GENERAL_ERROR, 'Could not remove user XData', '', __LINE__, __FILE__, $sql);[/b][/color]
	}

	if ($value !== '')
	{
    	$sql = "INSERT INTO " . XDATA_DATA_TABLE . "
			(user_id, field_id, xdata_value)
			VALUES (" . $row['user_id'] . ", " . $row['field_id'] . ", '" . $value . "')";

		if ( !($db->sql_query($sql)) )
		{
       		message_die(GENERAL_ERROR, 'Could not insert user XData', '', __LINE__, __FILE__, $sql);
		}
	}
}
>>>> = zeile 216

hier mal was aus der datenbank
[ externes Bild ]

ich hoffe du kannst mir weiter helfen.

Gruß Gysl
Antworten

Zurück zu „phpBB 2.0: Mod Support“