Wieso steht kein NULL in der Datenbank?

VanHellsehn

Erfahrenes Mitglied
Hallo,
Ich fürhre folgende Query aus:
PHP:
            $user_id = NULL;
            $online_counter_update =
                $this->db->query("UPDATE `counter_online`
                                        SET timestamp = ".time().",
                                            user_id = '".$user_id."'
                                        WHERE ip = '".$_SERVER['REMOTE_ADDR']."' 
                                        LIMIT 1");

Aber in meiner MySQL Tabelle erscheint nicht wie erwartet ein NULL sondern ein leeres Feld..
Wie kann ich es machen das NULL drin steht...
Wobei User_Id eine Varibale sein muss ohne denn code um etwa 100 zeilen zu erweitern und die Performance zu verringern..
 
Weil aus der Null beim zusammenführen mit einem String schlicht "nichts" wird.
Wird bei einem echo bei dir das NULL angezeigt? Da kannst es sehen.

Bei mir:
UPDATE `counter_online` SET timestamp = 1236631461, user_id = '' WHERE ip = '127.0.0.1' LIMIT 1

Auf die schnelle würde ich es so erzwingen:
PHP:
"UPDATE `counter_online`
SET timestamp = ".time().",
user_id = '". (($user_id === NULL)? "NULL": $user_id) ."'
WHERE ip = '".$_SERVER['REMOTE_ADDR']."' 
LIMIT 1"
 
Zuletzt bearbeitet:
Hi,
So hatte ich auch schon überlegt doch ich hatte eine Klammer um das ganze vergessen..
Also ich hatte ($user_id === NULL)? "NULL": $user_id dort stehen und nicht (($user_id === NULL)? "NULL": $user_id).

Aber diene Möglichkeit klappt auch noch nicht hunder prozentig aber das lag nur an den ' '
Also so klappt es jetzt:
PHP:
"UPDATE `counter_online`
                            SET timestamp = ".time().",
                                     user_id = ". (($user_id === NULL)? "NULL": $user_id) ."
                             WHERE ip = '".$_SERVER['REMOTE_ADDR']."' 
                             LIMIT 1"

Danke für die hilfe ich denke ich werde jetzt auf hören sitze schon zu lange davor..
 
Zurück