protected function _processSearch() { $class = $this->_getSearchClass(); $table = DBObject::stGetTableName($class); $fieldId = $class::stGetFieldConfigFiltered(array("identifier" => true)); $select = "SELECT {$this->fields} FROM {$table}"; $where = ""; foreach ($this->filters as $field => $filter) { $field = DBObject::stObjFieldToDBField($field); $op = $filter[0]; if (is_array($filter[1])) { $whereField = "("; foreach ($filter[1] as $value) { // TODO soporte para OR ? $whereField = $whereField . "'" . $value . "'" . " AND "; } $whereField = substr($whereField, 0, -5) . ")"; } else { $whereField = "'" . $filter[1] . "'"; } $where = $where . $field . " " . $op . " " . $whereField . " AND "; } if ($where != "") { $select = $select . " WHERE " . substr($where, 0, -5); } $offset = ($this->page - 1) * $this->limit; $select = $select . " LIMIT {$offset},{$this->limit}"; $mysqlParams = static::_stGetMySQLParams(); $search = DBMySQLConnection::stVirtualConstructor($mysqlParams)->query($select); // Anotamos los resultados $this->count = $search->num_rows; // Guardamos la búsqueda $this->search = $search; }
function getDBColumnType($field) { $params = array_merge(array_keys($this->objFields), array_keys($this->params)); $_params = array(); foreach ($params as $param) { $_params[$param] = isset($this->{$param}) ? $this->{$param} : $this->objFields["{$param}"]; } return "`" . DBObject::stObjFieldToDBField($field) . "` " . $this->_getDBColumnType($_params); }
private function _getPrimaryKey($config) { $PK = array(); foreach ($config as $field => $fieldConfig) { if ($fieldConfig["DT"] == "DataTypeIdDT" && $fieldConfig["DTParams"]["identifier"] == true) { $PK[] = DBObject::stObjFieldToDBField($field); } } return "PRIMARY KEY (`" . implode(",", $PK) . "`)"; }
protected function _save() { $dbObj = array(); // TODO usar stObjToDBFields foreach ($this->_getStoredParams() as $field => $value) { $dbObj[DBObject::stObjFieldToDBField($field)] = $value; } $mysqlParams = static::_stGetMySQLParams(); return (bool) DBMySQLConnection::stVirtualConstructor($mysqlParams)->updateObj($dbObj, $this->_getObjectId()); }