Support NULL values if requested
authorJoey Schulze <joey@infodrom.org>
Sun, 28 Feb 2010 15:50:11 +0000 (16:50 +0100)
committerJoey Schulze <joey@infodrom.org>
Sun, 28 Feb 2010 15:50:11 +0000 (16:50 +0100)
ajax/ajax.php

index 8e92c7b..3894be2 100644 (file)
@@ -65,12 +65,18 @@ function save($mask)
     if ($info['type'] == 'boolean') {
       $update[] = sprintf("%s=%d", $field, $_POST[$field] == 'on'?1:0);
     } elseif ($info['type'] == 'number') {
     if ($info['type'] == 'boolean') {
       $update[] = sprintf("%s=%d", $field, $_POST[$field] == 'on'?1:0);
     } elseif ($info['type'] == 'number') {
-      $update[] = sprintf("%s=%d", $field, $_POST[$field]);
+      if (empty($_POST[$field]) && $info['null'] === true)
+        $update[] = sprintf("%s=NULL", $field);
+      else
+       $update[] = sprintf("%s=%d", $field, $_POST[$field]);
     } elseif ($info['type'] == 'passwd') {
       if (!empty($_POST[$field]))
        $update[] = sprintf("%s='%s'", $field, pg_escape_string(passwd($_SESSION['sys']['login'],$_POST[$field])));
     } else {
     } elseif ($info['type'] == 'passwd') {
       if (!empty($_POST[$field]))
        $update[] = sprintf("%s='%s'", $field, pg_escape_string(passwd($_SESSION['sys']['login'],$_POST[$field])));
     } else {
-      $update[] = sprintf("%s='%s'", $field, pg_escape_string($_POST[$field]));
+      if (empty($_POST[$field]) && $info['null'] === true)
+        $update[] = sprintf("%s=NULL", $field);
+      else
+        $update[] = sprintf("%s='%s'", $field, pg_escape_string($_POST[$field]));
     }
 
   $sql = 'UPDATE ' . $mask['table'] . ' SET ';
     }
 
   $sql = 'UPDATE ' . $mask['table'] . ' SET ';
@@ -99,7 +105,10 @@ function insert($mask)
       $values[] = $_POST[$field] == 'on'?1:0;
     } elseif ($info['type'] == 'number') {
       $fields[] = $field;
       $values[] = $_POST[$field] == 'on'?1:0;
     } elseif ($info['type'] == 'number') {
       $fields[] = $field;
-      $values[] = intval($_POST[$field]);
+      if (empty($_POST[$field]) && $info['null'] === true)
+       $values[] = 'NULL';
+      else
+       $values[] = intval($_POST[$field]);
     } elseif ($info['type'] == 'passwd') {
       if (!empty($_POST[$field])) {
        $fields[] = $field;
     } elseif ($info['type'] == 'passwd') {
       if (!empty($_POST[$field])) {
        $fields[] = $field;
@@ -107,7 +116,10 @@ function insert($mask)
       }
     } else {
       $fields[] = $field;
       }
     } else {
       $fields[] = $field;
-      $values[] = sprintf("'%s'", pg_escape_string($_POST[$field]));
+      if (empty($_POST[$field]) && $info['null'] === true)
+       $values[] = 'NULL';
+      else
+       $values[] = sprintf("'%s'", pg_escape_string($_POST[$field]));
     }
 
   $sql = 'INSERT INTO ' . $mask['table'] . ' (' . implode(',', $fields) . ') ';
     }
 
   $sql = 'INSERT INTO ' . $mask['table'] . ' (' . implode(',', $fields) . ') ';