Not Null in Datenbank und trotzdem leere Spalte

Hallo zusammen,

ich habe eine Tabelle angelegt, in der die Spalten auf „Not Null“ stehen. In der Eingabemaske (PHP), die mit dieser Tabelle verknüpft ist habe ich aber ein paar Felder leer gelassen und konnte diese auch einwandfrei speichern. In der Tabelle ist auch kein Wert „sichtbar“. Was macht mysql nun, wenn ein Wert in einem Eingabefeld nicht vorhanden ist, dieser aber in ein Datenfeld mit „Not Null“ gespeichert werden soll?

Gruß

Hallo,

werden bei dir mögliche Fehler ausgegeben:

-> http://tut.php-q.net/de/error.html
-> http://php.net/manual/de/function.mysql-error.php
-> http://www.php-kurs.com/unterdruecken-von-php-fehler…

Hilft dir das hier weiter:

-> http://dev.mysql.com/doc/refman/5.1/de/null-values.html
-> http://dev.mysql.com/doc/refman/5.1/de/problems-with…

-> http://www.dynamic-webpages.de/php/language.types.nu…
( weise leeren Eingabefeldern NULL zu )

  • empty()
  • isset()

-> http://www.sql-und-xml.de/sql-tutorial/primaerschlue…

Spalte = Attribut :wink:

  • Kannst du das CREATE-Script für die betreffende Tabelle posten?
  • Kannst du das PHP-Script (Auschnitt: Formular und Insert) posten?

Grüße Roman

Hallo Alex,

Was macht mysql nun,
wenn ein Wert in einem Eingabefeld nicht vorhanden ist, dieser
aber in ein Datenfeld mit „Not Null“ gespeichert werden soll?

Warum soll das nicht gehen? In deinem Formular besteht der nicht vorhandene Wert sicher aus einem Leerstring. So ein Leerstring kann durchaus in einer Spalte, die als „not Null“ deklariert ist, abgelegt werden.
„Leerstring“ ist was anderes als „NULL“. NULL bedeutet eigentlich „kein Wert“ oder von mir aus „nicht definiert“, während ein leerer String durchaus ein Wert ist, eben ein „leerer String“.
Klingt wahrscheinlich verwirrend, deshalb hilft ein Blick ins Handbuch weiter:
http://dev.mysql.com/doc/refman/5.1/de/working-with-…
http://dev.mysql.com/doc/refman/5.1/de/problems-with…

Viele Grüße
Marvin

Hallo und danke für die Antworten,

ich hab’ die Variable auf NULL einfach überprüfen lassen.

if(IS\_NULL($\_POST['wohnflaeche']))
{
echo "1";
}

Es wurde nichts ausgegeben also ist die Variable „NOT NULL“

Die Variable geht aus folgender Zeile hervor.

qm

Es wird also ein Wert übergeben auch wenn das Feld leer bleibt.

Gruß

Hallo Alex,

Es wird also ein Wert übergeben auch wenn das Feld leer
bleibt.

Ja klar, z.B. ein Leerstring.

Eine Variable ist dann als Null anzusehen, wenn sie folgende Kriterien erfüllt:

• Die Konstannte NULL wurde als Wert zugewiesen
• Es wurde kein Wert zugewiesen.
• Variable wurde mit unset() gelöscht.

http://www.selfphp.info/funktionsreferenz/variablen_…
Aber ich bin etwas schwer von Begriff, was sollen uns jetzt deine Worte sagen? Stimmst Du der vorigen Erläuterung zu, oder gibt es doch noch Unklarheiten, oder hat sich das Problem verlagert (z.B. zu mir :wink:

Viele Grüße
Marvin

Frage gelöst!
Hallo nochmal,

ich habe mich auch undeutlich ausgedrückt. Die Frage ist gelöst. Ich wollte eben noch gleich erläutern, wie ich herausgefunden habe, ob das Textfeld einen leeren String übergibt oder nicht.

Gruß