Index: branches/unlabeled/unlabeled-1.30.2/core/kernel/db/dbitem.php =================================================================== diff -u -r7829 -r7843 --- branches/unlabeled/unlabeled-1.30.2/core/kernel/db/dbitem.php (.../dbitem.php) (revision 7829) +++ branches/unlabeled/unlabeled-1.30.2/core/kernel/db/dbitem.php (.../dbitem.php) (revision 7843) @@ -677,27 +677,27 @@ $values_sql = ''; foreach ($this->FieldValues as $field_name => $field_value) { if ($this->SkipField($field_name, $force_id)) continue; - + //Adding field' value to Values block of Insert statement, escaping it with qstr if (is_null( $this->FieldValues[$field_name] )) { if (isset($this->Fields[$field_name]['not_null']) && $this->Fields[$field_name]['not_null']) { - if ($field_name == $this->IDField) { - $values_sql .= 'DEFAULT'; - } - else { - $values_sql .= $this->Conn->qstr($this->Fields[$field_name]['default'], 0); - } - } - else { - $values_sql .= 'NULL'; - } - } - else { - $values_sql .= $this->Conn->qstr($this->FieldValues[$field_name], 0); - } - - $fields_sql .= '`'.$field_name.'`, '; //Adding field name to fields block of Insert statement - $values_sql .= ', '; + $values_sql .= $this->Conn->qstr($this->Fields[$field_name]['default'], 0); + } + else { + $values_sql .= 'NULL'; + } + } + else { + if ($field_name == $this->IDField && $this->FieldValues[$field_name] == 0) { + $values_sql .= 'DEFAULT'; + } + else { + $values_sql .= $this->Conn->qstr($this->FieldValues[$field_name], 0); + } + } + + $fields_sql .= '`'.$field_name.'`, '; //Adding field name to fields block of Insert statement + $values_sql .= ', '; } //Cutting last commas and spaces $fields_sql = ereg_replace(", $", '', $fields_sql); @@ -860,7 +860,7 @@ */ function GetID() { - return is_null($this->ID) ? $this->Fields[$this->IDField]['default'] : $this->ID; + return $this->ID; } /** @@ -871,7 +871,7 @@ */ function generateID() { - return null; + return 0; } /**