Matthias Jütte: leere Felder als NULL in mySQL speichern

Hallo!

Was muß ich denn anstellen, um leere POST-Variablen in mySQL als NULL abzuspeichern?

Gruß

Matthias

--
ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
http://www.makaio.de/quotations
  1. hi,

    Was muß ich denn anstellen, um leere POST-Variablen in mySQL als NULL abzuspeichern?

    für die felder in der tabellendefinition den wert NULL erlauben, und in deiner INSERT-query für diese spalte den wert NULL einfügen.

    gruss,
    wahsaga

    1. Hallo!

      für die felder in der tabellendefinition den wert NULL erlauben, und in deiner INSERT-query für diese spalte den wert NULL einfügen.

      Das war schon klar. Was ich halt nicht hinbekomme ist den NULL-Wert in den Query zu bekommen. Ist allerdings auch noch etwas komplexer, also aufgepaßt.

      Ich lese die Daten aus Tabelle A aus und stellen sie in einem Formular zur Verarbeitung zur Verfügung. Beim Abschicken des Formulars werde die Variablen unter $_SESSION gespeichert und danach aus den Session-Variablen mittels UPDATE in A geschrieben.

      Nun habe ich versucht IFNULL nach folgendem Muster anzuwenden:

      $query = "UPDATE $tb[contacts] SET extra = IFNULL('$_SESSION[variable]', NULL) WHERE ...";

      Das hat nicht funktioniert, also habe ich noch folgendes ausprobiert:

      foreach ( $_POST as $key => $val ) {
          if ( empty( $val ) ) {
              $_SESSION[$key] = NULL;
          }
          else {
              $_SESSION[$key] = $val;
          }
      }

      Was ist hier falsch?

      Gruß

      Matthias

      --
      ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
      http://www.makaio.de/quotations
      1. hi,

        $query = "UPDATE $tb[contacts] SET extra = IFNULL('$_SESSION[variable]', NULL) WHERE ...";

        Das hat nicht funktioniert

        was ergab eine kontrollausgabe der query?

        gruss,
        wahsaga

        1. Hallo!

          was ergab eine kontrollausgabe der query?

          Das Feld war zwar leer, aber halt nicht NULL. Also so als wenn ...='' geschrieben wurde.

          Gruß

          Matthias

          --
          ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
          http://www.makaio.de/quotations
          1. hi,

            Das Feld war zwar leer, aber halt nicht NULL. Also so als wenn ...='' geschrieben wurde.

            ich meinte eine kontroll-ausgabe deines query-strings, den du an die DB absetzen möchtest.

            gruss,
            wahsaga