1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-29 04:55:02 +03:00

fix ORM - теперь при запросах к БД учитываются только реальные поля таблицы

This commit is contained in:
Mzhelskiy Maxim 2013-02-11 17:38:24 +07:00
parent 38bdfd6099
commit 038a761555
2 changed files with 11 additions and 3 deletions

View file

@ -383,6 +383,14 @@ abstract class EntityORM extends Entity {
public function _getOriginalData() {
return $this->_aOriginalData;
}
/**
* Возвращает данные для списка полей сущности
*
* @return array
*/
public function _getDataFields() {
return $this->_getData($this->_getFields());
}
/**
* Возвращает список полей сущности
*

View file

@ -32,7 +32,7 @@ class MapperORM extends Mapper {
$sTableName = self::GetTableName($oEntity);
$sql = "INSERT INTO ".$sTableName." SET ?a ";
return $this->oDb->query($sql,$oEntity->_getData());
return $this->oDb->query($sql,$oEntity->_getDataFields());
}
/**
* Обновление сущности
@ -53,7 +53,7 @@ class MapperORM extends Mapper {
$sWhere.=' and '.$this->oDb->escape($sField,true)." = ".$this->oDb->escape($oEntity->_getDataOne($sField));
}
$sql = "UPDATE ".$sTableName." SET ?a WHERE {$sWhere}";
return $this->oDb->query($sql,$oEntity->_getData());
return $this->oDb->query($sql,$oEntity->_getDataFields());
} else {
$aOriginalData = $oEntity->_getOriginalData();
$sWhere = implode(' AND ',array_map(create_function(
@ -61,7 +61,7 @@ class MapperORM extends Mapper {
'return "{$oDb->escape($k,true)} = {$oDb->escape($v)}";'
),array_keys($aOriginalData),array_values($aOriginalData),array_fill(0,count($aOriginalData),$this->oDb)));
$sql = "UPDATE ".$sTableName." SET ?a WHERE 1=1 AND ". $sWhere;
return $this->oDb->query($sql,$oEntity->_getData());
return $this->oDb->query($sql,$oEntity->_getDataFields());
}
}
/**