SQL Error : 1136 Column count doesn't match value count at..

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.
Benutzeravatar
Lodda
Mitglied
Beiträge: 169
Registriert: 11.03.2004 19:18
Wohnort: Berlin

SQL Error : 1136 Column count doesn't match value count at..

Beitrag von Lodda »

Hallo,

ich habe leider erst heute mitbekommen das sich kein User mehr bei uns registrieren kann. Eine Mail die ich diesbezüglich mal bekam ist schon vier Monate alt und wurde wegen Urlaub damals einfach vergessen. Seit dieser Zeit und zu dieser Zeit habe ich viel rum probiert sodass sich eine Kontrolle über die neu installierten Mods bzw. Änderungen in der usercp_register.php von damals nicht machbar ist.

Die Fehlermeldung lautet:
Could not insert data into users table

DEBUG MODE

SQL Error : 1136 Column count doesn't match value count at row 1

INSERT INTO phpbb_users (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_from_flag, user_interests, user_plz, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_skype, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_gender, user_level, user_allow_pm, user_active, user_actkey, user_birthday, user_next_birthday_greeting) VALUES (4131, 'Testuserg42f3t5n53', 1108580763, '25f9e794323b453885f5181f1b624d0b', 'mich@egal.com', '', '', '', '', 'blank.gif', '', '', '', '', '', 0, 0, '', '', '', '', 1, 1, 0, 1, 1, 0, 1, 1, 1, 'D M d, Y g:i a', 'german', 1, '0', 0, 1, '4182', '4182', '2005', 0, '7e24e3ce5fa96')

Line : 714
File : /www/******/******/includes/usercp_register.php
Die Zeilen 713 – 715 meiner usercp_register.php lauten:

Code: Alles auswählen

{
message_die(GENERAL_ERROR, 'Could not insert data into users table', '', __LINE__, __FILE__, $sql);
}
Ich hab schon gesucht aber leider nichts gefunden, hoffe mir kann hier jemand helfen und den Fehler ausmerzen. Solltet Ihr noch mehr Informationen benötigen teile ich diese Euch natürlich sofort mit.

Ich bedanke mich schon einmal im voraus!
Mit freundlichen Grüßen

Lodda
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Poste mal den Code oberhalb deines Zitats ab $sql = "INSERT INTO...
Da gibts einen Fehler mit Username und Regdate
Benutzeravatar
Lodda
Mitglied
Beiträge: 169
Registriert: 11.03.2004 19:18
Wohnort: Berlin

...

Beitrag von Lodda »

Der lautet:

Code: Alles auswählen

$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_from_flag, user_interests, user_plz, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_skype, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_gender, user_level, user_allow_pm, user_active, user_actkey, user_birthday, user_next_birthday_greeting)
VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "', '" . str_replace("\'", "''", $icq) . "', '" . str_replace("\'", "''", $website) . "', '" . str_replace("\'", "''", $occupation) . "', '" . str_replace("\'", "''", $location) . "', '$user_flag', '" . str_replace("\'", "''", $interests) . "', '" . str_replace("\'", "''", $plz) . "', '" . str_replace("\'", "''", $signature) . "', '$signature_bbcode_uid', $avatar_sql, $viewemail, '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', '" . str_replace("\'", "''", $yim) . "', '" . str_replace("\'", "''", $msn) . "', '" . str_replace("\'", "''", $skype) . "', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $popup_pm, $user_timezone, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $user_lang) . "', $user_style, '$gender', 0, 1, '$birthday', '$birthday', '$next_birthday_greeting', ";
			if ( $board_config['require_activation'] == USER_ACTIVATION_SELF || $board_config['require_activation'] == USER_ACTIVATION_ADMIN || $coppa )
			{
				$user_actkey = gen_rand_string(true);
				$key_len = 54 - (strlen($server_url));
				$key_len = ( $key_len > 6 ) ? $key_len : 6;
				$user_actkey = substr($user_actkey, 0, $key_len);
				$sql .= "0, '" . str_replace("\'", "''", $user_actkey) . "')";
			}
			else
			{
				$sql .= "1, '')";
			}

			if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
Besten Dank erst einmal!
Mit freundlichen Grüßen

Lodda
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Code: Alles auswählen

'$birthday', '$birthday', '$next_birthday_greeting', ";
Lösch ein '$birthday',
Benutzeravatar
Lodda
Mitglied
Beiträge: 169
Registriert: 11.03.2004 19:18
Wohnort: Berlin

Mein Dank!

Beitrag von Lodda »

Hallo Leuchte,

Du bist spitze!!!! Sag mal, wie gehst Du bei solchen Meldungen vor? Wie ist Dein Weg bei der Fehlersuche bzw. gehst Du vor? Ich mein, der Fehler sollte einem ja eigentlich ins Gesicht springen, ich habe ihn aber nicht gesehen und versteh das nicht. Um solche Sachen in der Zukunft besser im Griff zu bekommen wäre es wirklich hilfreich wenn Du mir Dein Geheimnis verrätst ;)

Vielen, vielen Dank!
Mit freundlichen Grüßen

Lodda
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Das wichtigste ist der ausgegebene SQL Fehler: In deinem Fall
SQL Error : 1136 Column count doesn't match value count at row 1
.. bedeutet, dass es mehr Werte (Values) als Tabellenspalten gibt. Also muss dort etwas doppelt sein - wie man sieht ;)
Benutzeravatar
Lodda
Mitglied
Beiträge: 169
Registriert: 11.03.2004 19:18
Wohnort: Berlin

Stimmt eigentlich aber....

Beitrag von Lodda »

Ich persönlich plädiere auf eine deutsche Sprachausgabe für PHP und SQL, dieses technische englisch liegt mir ehrlich gesagt nicht so aber Du hast natürlich recht!
Mit freundlichen Grüßen

Lodda
aibo
Mitglied
Beiträge: 13
Registriert: 19.09.2004 14:51
Wohnort: Hagen
Kontaktdaten:

Beitrag von aibo »

Leuchte hat geschrieben:Also muss dort etwas doppelt sein - wie man sieht ;)
Oder etwas zu wenig. ;-)

Hatte den selben Fehler.
Habe folgenden Code vergessen:
, '" . str_replace("\'", "''", $info) . "'
Gruß
aibo
Lord-Blackwolf
Mitglied
Beiträge: 44
Registriert: 22.10.2005 10:58

Augenfehler ...

Beitrag von Lord-Blackwolf »

Hi Boarders,...

ich hab den gleichen Fehler,... hab auch Eure Posts gelesen, finde aber irgendwie den Zusammenhang zwischen den Rubriken (user_id, username, user_regdate, ...) und der Abgrenzung der Values ($user_id, '" . str_replace("\'", "''", $username .....) nicht.

Code: Alles auswählen

$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username, user_regdate, user_password, user_email, user_icq, 
user_website, user_occ, user_from, user_interests, user_sig, 

--[gekürzt]--

, "''", $user_dateformat) 
. "', '" . str_replace("\'", "''", $user_lang) . "', $user_style, 0, 1, ";
			if ( $board_config['require_activation'] == USER_ACTIVATION_SELF || $board_config['require_activation'] == 
USER_ACTIVATION_ADMIN || $coppa )
Ich bin in SQL ein ziemlicher Dummy,... aber die Anzahl von Werten mit Rubriken zu vergleichen traue ich mir noch zu ... wenn ich nur wüsste, wie die Werte abgegrenzt sind .... *fg

Vielleicht gibt es ja ein Tool, mit dem man solche Anweisungen auf Plausibilität prüfen kann, d.h. was einem die Fehlermeldung auswirft, welche Variable nu eben kenen Inhalt hat.

(Ich weiss, Mysql arbeitet die Anweisung von links nach rechts ab und stellt am ende fest, das zu wenig Kekse in der Dose sind ...*g)

Greetz

Blackwolf

---[edit]----

Ich habe nunmehr den Fehler selbst gefunden:

Da hier die Frage auftaucht, wie man bei soetwas vorgeht, beschreibe ich mal, wie ich als Laie in Mysql das Ding gefixt habe:

1. Fehlermeldung genau lesen ....
(Da stand ja schon die Zeilennummer drin)

2. Forum lesen
(Der Hinweis mit der über-/unterzähligen Variable war der Hint.)

Da ich nun - wie oben schon gesagt - nicht wusste, wie sich die Felder voneinender unterscheiden, hab ich mir den Fehler nocheinmal angesehen, die Unterteilung waren Kommas. Also ...

3. komplette Zeile (sql-Tabelle und Werte) rauskopiert aus dem Editor und in Notepad gepastet.

4. Nach jeder Feldbeschreibung ein (CR) gemacht, nach unten zu den Werten gegangen die Variable gesucht (sollte ja immer die nächste sein) und nach oben gepastet.

5. Feststellung:
Zwei Werte passten nicht mit Feldnamen zusammen:

-------[EXAMPLE]--------
.....
user_avatar, ---> , $avatar_sql
user_avatar_type, ---> :oops:
user_viewemail, ----> , $viewemail
.....
user_timezone, ---> , $user_timezone
user_rankset_id, ---> :oops:
user_dateformat, ---> , '" . str_replace("\'", "''", $user_dateformat). "'
.....
-------[/EXAMPLE]--------

6. Da der Verdacht auf dem unteren Wert lag, hab ich das ganze mit einer "sauberen" includes/usercp_register.php gemacht und dabei festgestellt, das die "fehlende" Zuweisung für den avatar_type oki ist.

7. Nochmal die MOD-Anleitung für den extended-RANK MOD herangezuppelt, die Passage über die includes/usercp_register.php nochmal überprüft und ... festgestellt das die Anweisung:

Code: Alles auswählen

#-----[ IN-LINE FIND ]---------------------------------------------------
# 
$user_timezone

# 
#-----[ IN-LINE AFTER, ADD ]---------------------------------------------------
# 
, $rankset
bei der Bearbeitung vergessen wurde.

8. Variable eingefügt, UPLOAD und .... :grin:

Danke für alle, die evtl. nach einem Fehler im Code gesucht haben und mir helfen wollten.

Greetz

Blackwolf
Zuletzt geändert von Lord-Blackwolf am 26.10.2005 14:56, insgesamt 1-mal geändert.
Benutzeravatar
Markus67
Ehrenadmin
Beiträge: 28346
Registriert: 12.01.2004 16:02
Wohnort: Neuss
Kontaktdaten:

Beitrag von Markus67 »

Hi ...

Wie lautet denn die Fehlermeldung?
Dann verlinke gleich die usercp_register.php

Markus
Antworten

Zurück zu „phpBB 2.0: Mod Support“