Переделал базовую модель - getAll на PDO

This commit is contained in:
Krivchikov Dmitry 2016-05-14 13:10:50 +03:00
parent 5958f6b614
commit a8733fefbc
1 changed files with 16 additions and 11 deletions

View File

@ -142,28 +142,33 @@ abstract class Model
* @param array $params ['where'] просто строка с условиями: (`id` > 1) AND (`name` == 'TEST'); ['order'] строка с именем толбца и напрабления: `summ` DESC * @param array $params ['where'] просто строка с условиями: (`id` > 1) AND (`name` == 'TEST'); ['order'] строка с именем толбца и напрабления: `summ` DESC
* @return array с объектами * @return array с объектами
*/ */
function getAll($params = array()) function getAll($params = array(), $values = array())
{ {
$sql = 'SELECT * FROM `' . $this->_tableName_ . '`'; $sql = 'SELECT * FROM `' . $this->_tableName_ . '`';
$sql .= isset($params['where']) && $params['where'] ? ' WHERE ' . $params['where'] : ''; $sql .= isset($params['useIndex']) ? ' USE INDEX(' . $params['useIndex'] . ')' : '';
$sql .= isset($params['order']) && $params['order'] ? ' ORDER BY ' . $params['order'] : ''; $sql .= isset($params['where']) ? ' WHERE ' . $params['where'] : '';
if (isset($params['limit']) && $params['limit']) { $sql .= isset($params['order']) ? ' ORDER BY ' . $params['order'] : '';
if (isset($params['offset']) && $params['offset']) { if (isset($params['limit']) && intval($params['limit'])) {
$sql .= ' LIMIT ' . $params['offset'] . ', ' . $params['limit']; if (isset($params['offset']) && intval($params['offset'])) {
$sql .= ' LIMIT ' . intval($params['offset']) . ', ' . intval($params['limit']);
} else { } else {
$sql .= ' LIMIT ' . $params['limit']; $sql .= ' LIMIT ' . intval($params['limit']);
} }
} }
$res = App::DB()->query($sql);
$res = App::DB()->prepare($sql);
$res->execute($values);
$ready = array(); $ready = array();
$calledClass = get_called_class(); $calledClass = get_called_class();
while ($res && $row = $res->fetch(PDO::FETCH_ASSOC)) { while ($res && $row = $res->fetch(PDO::FETCH_ASSOC)) {
if (isset($params['noKeys'])) { $element = isset($params['asArray']) && $params['asArray'] ? $row : new $calledClass($row);
$ready[] = isset($params['asArray']) && $params['asArray'] ? $row : new $calledClass($row);
if (isset($params['noKeys']) && $params['noKeys']) {
$ready[] = $element;
} else { } else {
$ready[$row[$this->_primaryKey_]] = isset($params['asArray']) && $params['asArray'] ? $row : new $calledClass($row); $ready[$row[$this->_primaryKey_]] = $element;
} }
} }