Seite 1 von 1

Could not remove user XData

Verfasst: 27.12.2005 23:34
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

Verfasst: 28.12.2005 13:31
von hagily
+schieb+
keiner ne idee? :cry:

Verfasst: 31.12.2005 13:36
von hagily
+help+

Sind alle vorlauter update sooooo beschäftigt?

Verfasst: 31.12.2005 16:24
von Tonchen
Hat denn keiner eine Idee?

Verfasst: 01.01.2006 15:58
von Tonchen
*schieb*

Verfasst: 01.01.2006 19:12
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"

Verfasst: 01.01.2006 19:14
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

Verfasst: 01.01.2006 19:17
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.

Verfasst: 18.01.2006 04:05
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