Not Null funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Not Null funktioniert nicht

    Hallo zusammen

    Ich habe in meiner DB ein Feld int(20). Wenn ich das auf NULL setze und über pHP my Admin einen Entrag mache wird auch " NULL" eingetragen.

    Wenn ich via Into den Eintrag schreibe und keine Wert im Feld habe wird "0" eingetragen und nicht "Null".

    Wiso ist das so oder was mache ich falsch?

    Danke für Euer Feedback

  • #2
    Zitat von sepp Beitrag anzeigen
    Wiso ist das so oder was mache ich falsch?
    Woher sollen wir das Wissen, ohne den entsprechenden Code zu sehen?
    Alle Glaskugeln sind hier in Reperatur

    Kommentar


    • #3
      Da braucht man weis Gott keine Glaskugel!
      Ist alles standart

      PHP-Code:
      ..INSERT INTO $tab (anzahlvalues ('$var')... 
      Auch wenn ich explizit keinen Wert eintrage wird 0 eingetragen.
      PHP-Code:
      ..INSERT INTO $tab (anzahlvalues ('')... 

      Kommentar


      • #4
        Und?
        Was sagt das CREATE Statement?

        DEFAULT 0
        oder DEFAULT NULL
        Wir werden alle sterben

        Kommentar


        • #5
          Da bin ich leider überfragt...was ist das CREATE Statement?

          Ich meine NULL, wenn in der DB das der standardwert2 ist und bei Null null steht.

          Kommentar


          • #6
            Mach mal in phpmyadmin
            Code:
            SHOW CREATE TABLE deine_tabelle
            Wir werden alle sterben

            Kommentar


            • #7
              default NULL,

              Kommentar


              • #8
                '' ist nun mal nicht NULL. Wenn du NULL eintragen möchtest, solltest du auch NULL schreiben. '' ergibt auf Integer gecastet 0.

                Kommentar


                • #9
                  Das hatte ich mir auch schon gedacht, nur wenn ich NULL eintrage wird auch eine 0 in der DB gespeichert!

                  Kommentar


                  • #10
                    Wenn du die Tabellenstruktur nicht zeigst, kann man nur im Dunklen stochern. Wenn die Tabelle korrekt aufgebaut ist, wird nicht 0 statt NULL eingetragen. Es gibt also nur zwei Möglichkeiten:

                    1. Die SQL-Abfrage ist fehlerhaft.
                    2. Die Tabellenstruktur ist fehlerhaft.

                    Beides ist mir unbekannt. Tja...

                    Kommentar


                    • #11
                      Also auch unabhängig von von SQL wenn ich in phpmyadmin einfüge und da NULL eingebe wird 0 eingetragen.

                      Reicht Dir das als Tabellenstruktur?

                      CREATE TABLE `frequenzen_anlage` (
                      `lauf_id` int(200) NOT NULL auto_increment,
                      `wochentag` text NOT NULL,
                      `mieter` longtext NOT NULL,
                      `anzahl` int(100) default NULL,
                      `datum` date NOT NULL,
                      `anlage_id` varchar(100) NOT NULL,
                      `benutzer_id` varchar(100) NOT NULL,
                      `wochennummer` int(10) NOT NULL,
                      `schuljahr` text NOT NULL,
                      `status` enum('aktiv','archiv') NOT NULL,
                      PRIMARY KEY (`lauf_id`),
                      KEY `wochennummer` (`wochennummer`),
                      KEY `benutzer_id` (`benutzer_id`),
                      KEY `anlage_id` (`anlage_id`)
                      ) ENGINE=MyISAM AUTO_INCREMENT=10552 DEFAULT CHARSET=latin1

                      Kommentar


                      • #12
                        Kann das Problem nicht nachvollziehen:

                        Code:
                        mysql> CREATE TABLE `frequenzen_anlage` (
                            -> `lauf_id` int(200) NOT NULL auto_increment,
                            -> `wochentag` text NOT NULL,
                            -> `mieter` longtext NOT NULL,
                            -> `anzahl` int(100) default NULL,
                            -> `datum` date NOT NULL,
                            -> `anlage_id` varchar(100) NOT NULL,
                            -> `benutzer_id` varchar(100) NOT NULL,
                            -> `wochennummer` int(10) NOT NULL,
                            -> `schuljahr` text NOT NULL,
                            -> `status` enum('aktiv','archiv') NOT NULL,
                            -> PRIMARY KEY (`lauf_id`),
                            -> KEY `wochennummer` (`wochennummer`),
                            -> KEY `benutzer_id` (`benutzer_id`),
                            -> KEY `anlage_id` (`anlage_id`)
                            -> ) ENGINE=MyISAM AUTO_INCREMENT=10552 DEFAULT CHARSET=latin1;
                        Query OK, 0 rows affected (0.36 sec)
                        
                        mysql> INSERT INTO frequenzen_anlage (anzahl) VALUES (NULL);
                        Query OK, 1 row affected, 7 warnings (0.18 sec)
                        
                        mysql> SELECT * FROM frequenzen_anlage;
                        +---------+-----------+--------+--------+------------+-----------+-------------+--------------+-----------+--------+
                        | lauf_id | wochentag | mieter | anzahl | datum      | anlage_id | benutzer_id | wochennummer | schuljahr | status |
                        +---------+-----------+--------+--------+------------+-----------+-------------+--------------+-----------+--------+
                        |   10552 |           |        |   NULL | 0000-00-00 |           |             |            0 |           | aktiv  |
                        +---------+-----------+--------+--------+------------+-----------+-------------+--------------+-----------+--------+
                        1 row in set (0.00 sec)

                        Kommentar


                        • #13
                          Ich auch nicht;
                          wenn ich den Eintrag in phpmyadmin so mache
                          INSERT INTO frequenzen_anlage (anzahl) VALUES (NULL);
                          wird auch null eingetragen.

                          Wenn ich über einfügen im phpmyadmin NULL in das Anzahlfeld schreibe trägt es eine 0 ein!

                          Kommentar


                          • #14
                            Zitat von sepp Beitrag anzeigen
                            Ich auch nicht;
                            wenn ich den Eintrag in phpmyadmin so mache
                            INSERT INTO frequenzen_anlage (anzahl) VALUES (NULL);
                            wird auch null eingetragen.

                            Wenn ich über einfügen im phpmyadmin NULL in das Anzahlfeld schreibe trägt es eine 0 ein!
                            Weil du phpMyAdmin falsch bedienst. Um ein NULL-Wert einzufügen, musst du die NULL-Checkbox anhaken.

                            Kommentar


                            • #15
                              Ist angehakt!

                              Kommentar

                              Lädt...
                              X