Index: trunk/kernel/include/itemdb.php =================================================================== diff -u -r1566 -r2082 --- trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 1566) +++ trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 2082) @@ -279,59 +279,44 @@ return true; } - function Update($UpdatedBy=NULL,$modificationDate = null) - { - global $Errors, $objSession; - - if(count($this->m_dirtyFieldsMap) == 0) - return true; + function Update($UpdatedBy=NULL,$modificationDate = null) + { + global $Errors, $objSession; - $this->SetModified($UpdatedBy,$modificationDate); - $sql = "UPDATE ".$this->tablename ." SET "; - $first = 1; + if( count($this->m_dirtyFieldsMap) == 0 ) return true; - foreach ($this->m_dirtyFieldsMap as $key => $value) - { - if(!is_numeric($key) && $key != $this->IdField() && $key!='ResourceId') - { - if($first) - { - if(isset($GLOBALS['_CopyFromEditTable'])) - $sql = sprintf("%s %s=%s",$sql,$key,$this->adodbConnection->qstr(($value))); - else - $sql = sprintf("%s %s=%s",$sql,$key,$this->adodbConnection->qstr(stripslashes($value))); - $first = 0; - } - else - { - if(isset($GLOBALS['_CopyFromEditTable'])) - $sql = sprintf("%s, %s=%s",$sql,$key,$this->adodbConnection->qstr(($value))); - else - $sql = sprintf("%s, %s=%s",$sql,$key,$this->adodbConnection->qstr(stripslashes($value))); - } - } - } + $this->SetModified($UpdatedBy, $modificationDate); + $sql = 'UPDATE '.$this->tablename .' SET '; - $sql = sprintf("%s WHERE %s = '%s'",$sql, $this->IdField(), $this->UniqueId()); + foreach ($this->m_dirtyFieldsMap as $key => $value) + { + if(!is_numeric($key) && $key != $this->IdField() && $key!='ResourceId') + { + if( is_null($value) ) + { + $value = 'NULL'; + } + else + { + $value = $this->adodbConnection->qstr( isset($GLOBALS['_CopyFromEditTable']) ? $value : stripslashes($value) ); + } + $sql .= '`'.$key.'` = '.$value.', '; + } + } + $sql = preg_replace('/(.*), $/','\\1',$sql); + + $sql .= ' WHERE '.$this->IdField().' = '.$this->adodbConnection->qstr( $this->UniqueId() ); - if($this->debuglevel>0) - echo $sql."
"; - if ($this->adodbConnection->Execute($sql) === false) - { - $Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"Update"); - return false; - } - - if ($objSession->GetVariable("HasChanges") == 2) { - $objSession->SetVariable("HasChanges", 1); - } - -/* if ($this->adodbConnection->Affected_Rows() > 0) { - $objSession->SetVariable("HasChanges", 1); - }*/ - - return true; - } + if( $this->debuglevel > 0 ) echo $sql.'
'; + if( $this->adodbConnection->Execute($sql) === false ) + { + $Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"Update"); + return false; + } + + if( $objSession->GetVariable('HasChanges') == 2 ) $objSession->SetVariable('HasChanges', 1); + return true; + } function ReplaceID($new_id) {