Welcome, Guest. Please Login or Register.
November 26, 2024, 08:34:34 PM
Home Help Search Log in Register
News: SMF is the next generation in forum software, almost completely re-written from the ground up, make sure you don't fall for cheap imitations that suffer from feature bloat!

YaBB SE Community  |  German User Help  |  Hilfe zu YaBB SE  |  culumn identity cannot be null - was tun? « previous next »
Pages: [1] 2 Reply Ignore Print
Author Topic: culumn identity cannot be null - was tun?  (Read 743 times)
HonkXL
Noobie
*
Posts: 32


I'm a llama!

culumn identity cannot be null - was tun?
« on: February 16, 2003, 11:02:28 AM »
Reply with quote

Hallo,

ich habe einen User, der mit meinem Forum ziemliche Probleme hat. Er bekommt immer nur einen Datenbankfehler. Im Error Log steht das hier:

Guest : unknown : Heute um 01:45:45
/yabbse/index.php?board=8
Datenbankfehler: Column 'identity' cannot be null
Datei: /var/www/web1/html/yabbse/Sources/Subs.php
Zeile: 1048

Ich habe die 1.5.1 RC1 40 installiert. Das Problem tritt seit dem Update von 38 auf 40 auf.

Was kann der Fehler bedeuten?

Gruß
Thomas
Logged
mediman
Support Team
YaBB God
*****
Posts: 2858


WWW
Re:culumn identity cannot be null - was tun?
« Reply #1 on: February 16, 2003, 11:12:11 AM »
Reply with quote

Das heisst, dass beim Einloggen die $REMOTE_ADDR nicht in die DB geschreiben wird, respektive in die Table "{$prefix}log_online" Row "Identity"

Leere mal diese Table und nutze danach die Optimize Funktion im Admincenter

mediman

Nutzt er irgend ne Firewall oder ne Stealth IP Ware?
« Last Edit: February 16, 2003, 11:16:54 AM by mediman » Logged

mainComm Dev Team
HonkXL
Noobie
*
Posts: 32


I'm a llama!

Re:culumn identity cannot be null - was tun?
« Reply #2 on: February 16, 2003, 12:04:23 PM »
Reply with quote

Hallo,

danke für die schnelle Antwort! Ich habe es so gemacht wie Du gesagt hast und vorher habe ich noch auf die aktuelle build vom RC1 upgedated.

Dem User habe ich eine Mail geschickt. Ich weiß nur, das er Opera 7.01 verwendet und dort "identify as Opera" gewählt hat. Ich verwende den aber auch und habe keine Probleme. Wegen Firewalls u.ä. habe ich ihn gefragt - mal sehen was er antwortet.

Im Log steht auch keine IP-Adresse drinnen, sonder nur "unknown". Also scheint das Problem wirklich in die Richtung zu gehen.

Gruß
Thomas
Logged
Stevie
Noobie
*
Posts: 6


I'm a llama!

Re:culumn identity cannot be null - was tun?
« Reply #3 on: February 16, 2003, 08:16:31 PM »
Reply with quote

Hallo,

einer meiner User hat das Problem auch, allerdings nur solange er als Gast im Forum ist. Sobald er sich anmeldet funktioniert alles. Er hatte schon einige Probleme mit seiner Firewall (Ken!DSL) in Bezug auf das Forum, so dass ich die Ursache dort vermute.

Interessant ist, dass der Eintrag im Fehlerlog 2 IPs aufweist:

Guest : xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx : Heute um 19:26:52
/php/forum/index.php?board=18
Datenbankfehler: Column 'identity' cannot be null

(IPs durch xxx ersetzt).

Hat jemand eine Idee was da schiefgeht? Ich vermute es hängt mit der WriteLog-Routine in Subs.php zusammen?! Leider kann ich den Fehler nicht reproduzieren, um mir das näher anzusehen...

Gruß Stevie
Logged
mediman
Support Team
YaBB God
*****
Posts: 2858


WWW
Re:culumn identity cannot be null - was tun?
« Reply #4 on: February 16, 2003, 09:15:55 PM »
Reply with quote

QuoteIch vermute es hängt mit der WriteLog-Routine in Subs.php zusammen?!

Ja, da vermutest Du richtig!
Ich habs auf der Supportliste! Werde es mir angucken!

mediman
Logged

mainComm Dev Team
Stevie
Noobie
*
Posts: 6


I'm a llama!

Re:culumn identity cannot be null - was tun?
« Reply #5 on: February 17, 2003, 01:31:06 AM »
Reply with quote

Mit dem Build 42 sollte sich das Problem erledigt haben...

Gruß Stevie
Logged
mediman
Support Team
YaBB God
*****
Posts: 2858


WWW
Re:culumn identity cannot be null - was tun?
« Reply #6 on: February 17, 2003, 06:07:11 AM »
Reply with quote

die neue writelog fixed das problem!
Logged

mainComm Dev Team
Stevie
Noobie
*
Posts: 6


I'm a llama!

Re:culumn identity cannot be null - was tun?
« Reply #7 on: February 17, 2003, 12:03:44 PM »
Reply with quote

Leider nicht so richtig. Statt
"Column identiy cannot be null"

gibt es jetzt einen

Datenbankfehler: Duplicate entry '0' for key 1
in Zeile 1059

Die Zeilenangabe wundert mich allerdings, da der betreffende User das Problem als Gast hat, Zeile 1059 der subs.php jedoch eigentlich nur bei eingeloggten Mitgliedern abgearbeitet werden sollte, oder?

Könnte es evtl. helfen, wenn man in der DELETE-Query auch noch auf identity=0 prüft? Wobei mir noch nicht ganz klar ist, wie die 0 überhaupt zustande kommt...

Stevie

PHP-Version: 4.2.1
MySQL:  3.23.53a
YaBBSE: 1.5.1 RC1 Build 42
Logged
Stevie
Noobie
*
Posts: 6


I'm a llama!

Re:culumn identity cannot be null - was tun?
« Reply #8 on: February 17, 2003, 01:55:09 PM »
Reply with quote

Nachtrag:
[unknown] hat angeregt, das INSERT INTO in der entsprechenden Abfrage durch ein REPLACE INTO zu ersetzen. Klingt zumindest plausibel. Werde ich mal testen.

Stevie
Logged
andrea
Global Moderator
YaBB God
*****
Posts: 4400


Peace on Earth

WWW
Re:culumn identity cannot be null - was tun?
« Reply #9 on: February 17, 2003, 09:23:38 PM »
Reply with quote

In meinem Board ist der "Column 'identity' cannot be null" Datenbankfehler gottseidank ganz verschwunden, nachdem ich auf 1.5.1 RC 42 upgegraded habe.
Logged

mediman
Support Team
YaBB God
*****
Posts: 2858


WWW
Re:culumn identity cannot be null - was tun?
« Reply #10 on: February 17, 2003, 09:30:22 PM »
Reply with quote

die neue writelog sollte so aussehen

function WriteLog()
{
   global $REMOTE_ADDR, $username, $db_prefix, $ID_MEMBER;

   $logTime = time();

   if ($ID_MEMBER == -1 && !empty($REMOTE_ADDR) && ip2long($REMOTE_ADDR) != -1)
   {
      $request = mysql_query ("
         DELETE FROM {$db_prefix}log_online
         WHERE logTime < " . ($logTime - 900) . "
            OR identity=INET_ATON('$REMOTE_ADDR')") or database_error(__FILE__, __LINE__);
      $request = mysql_query ("
         INSERT INTO {$db_prefix}log_online
            (identity, logTime)
         VALUES (INET_ATON('$REMOTE_ADDR'), $logTime)") or database_error(__FILE__, __LINE__);
   }
   else
   {
      $request = mysql_query ("
         DELETE FROM {$db_prefix}log_online
         WHERE logTime < " . ($logTime - 900) . "
            OR identity=$ID_MEMBER") or database_error(__FILE__, __LINE__);
      $request = mysql_query ("
         INSERT INTO {$db_prefix}log_online
            (identity, logTime)
         VALUES ($ID_MEMBER, $logTime)") or database_error(__FILE__, __LINE__);
   }
}


Dann passt das!

mediman
Logged

mainComm Dev Team
andrea
Global Moderator
YaBB God
*****
Posts: 4400


Peace on Earth

WWW
Re:culumn identity cannot be null - was tun?
« Reply #11 on: February 18, 2003, 12:26:32 PM »
Reply with quote

Der bug ist doch nicht ganz verschwunden nur mit 1.5.1. rc 42 php Sources uploaden, wie sich heute morgen herausgestellt hat. Werde Dein neues Writelog einbauen und melden, obs genützt hat. Danke schon mal.
Logged

Stevie
Noobie
*
Posts: 6


I'm a llama!

Re:culumn identity cannot be null - was tun?
« Reply #12 on: February 18, 2003, 12:45:46 PM »
Reply with quote

Quote from: andrea on February 18, 2003, 12:26:32 PM
Der bug ist doch nicht ganz verschwunden nur mit 1.5.1. rc 42 php Sources uploaden, wie sich heute morgen herausgestellt hat. Werde Dein neues Writelog einbauen und melden, obs genützt hat. Danke schon mal.

Die von mediman genannte Version hat zwar den "column identity cannot be null"-Fehler beseitigt, dafür gab es weiter oben genannten "duplicate entry"-Fehler.

Ich habe jetzt INSERT INTO durch REPLACE INTO ersetzt, was in meinem Board beide Probleme löst. Zumindest verschluckt sich die Routine nun nicht mehr an doppelten IP-Adressen.

Stevie
Logged
HonkXL
Noobie
*
Posts: 32


I'm a llama!

Re:culumn identity cannot be null - was tun?
« Reply #13 on: February 18, 2003, 05:15:07 PM »
Reply with quote

Hallo,

kleine Ergänzung noch: Wenn man als Proxy einen squid-Proxy verwendet, dann kann man das Problem reproduzieren. Ich habe heute mein Board von der Arbeit aus getestet. Es war egal, welchen Browser oder welches Betriebssystem auf dem Client verwendet wurde - sobald es über den squid ging, war Schluß (Datenbankfehler)....

Ich werde jetzt mal build 42 einspielen und es dann morgen auf der Arbeit nochmal über den squid testen.

Gruß
Thomas
Logged
andrea
Global Moderator
YaBB God
*****
Posts: 4400


Peace on Earth

WWW
Re:culumn identity cannot be null - was tun?
« Reply #14 on: February 18, 2003, 07:02:27 PM »
Reply with quote

Also ich (bzw. das betroffene Mitglied) erhalte genau dieselben Fehlermeldungen, und es hat sicher mit dem Proxy zu tun. Das Mitglied kann vom privaten PC aus problemlos zugreifen, aber ab Arbeitsplatz (öffentliche Verwaltung, Proxy aktiv) nicht. Die Fehlermeldungen in meinem Errorlog stimmen exakt mit den oben zitierten Meldungen überein, sie haben sich exakt wie oben beschrieben verändert durch RC 42 sources, dann medimans fix.
Logged

Pages: [1] 2 Reply Ignore Print 
YaBB SE Community  |  German User Help  |  Hilfe zu YaBB SE  |  culumn identity cannot be null - was tun? « previous - next »
 


Powered by MySQL Powered by PHP YaBB SE Community | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.
SMF 2.1.4 © 2023, Simple Machines
Valid XHTML 1.0! Valid CSS

Page created in 0.096 seconds with 20 queries.