Some changes to insert_record to help Postgres 7.3
authormoodler <moodler>
Sun, 19 Jan 2003 05:46:49 +0000 (05:46 +0000)
committermoodler <moodler>
Sun, 19 Jan 2003 05:46:49 +0000 (05:46 +0000)
lib/datalib.php

index ba2c377e13cf7c2ba4a17019dfe4f74e595b4c82..8a1ef2d8bbd3c3bf841362154370d60c3c9cdc0c 100644 (file)
@@ -492,7 +492,11 @@ function insert_record($table, $dataobject, $returnid=true) {
                 if ($data[$column->name] == "" and !empty($column->has_default)) {
                     $ddd[$column->name] = $column->default_value;
                 } else {
-                    $ddd[$column->name] = $data[$column->name];
+                               if (empty($column->not_null)) {
+                           $ddd[$column->name] = null;
+                    } else {
+                        $ddd[$column->name] = $data[$column->name];
+                    }
                 }
             } else {
                 if (!empty($column->has_default)) {
@@ -514,14 +518,15 @@ function insert_record($table, $dataobject, $returnid=true) {
     $select = "";
 
     foreach ($ddd as $key => $value) {
-        $count++;
-        $inscolumns .= "$key";
-        $insvalues .= "'$value'";
-        $select .= "$key = '$value'";
-        if ($count < $numddd) {
-            $inscolumns .= ", ";
-            $insvalues .= ", ";
-            $select .= " AND ";
+        if (!is_null($value)){
+            if ($select) {
+                $inscolumns .= ", ";
+                $insvalues .= ", ";
+                $select .= " AND ";
+            }
+            $inscolumns .= "$key";
+            $insvalues .= "'$value'";
+            $select .= "$key = '$value'";
         }
     }