/** * Returns the scheme of the One_Query instance * * @return One_Scheme */ public function getInstanceScheme() { $selects = $this->query->getSelect(); $instanceScheme = $this->query->getScheme(); $usedSchemes = array(); foreach ($selects as $select) { if (preg_match('/([^\\(]+\\()?([^:]+):([^:]+)/', $select, $matches) > 0) { $usedSchemes[] = trim($matches[2]); } } if (count($usedSchemes) == 1) { $this->defineRole($usedSchemes[0]); $instanceScheme = $this->joins[$usedSchemes[0]]['scheme']; } return $instanceScheme; }
/** * Return the number of results when the query is performed * * @param One_Query $query * @param boolean $overrideFilters * @return int */ public function executeSchemeCount(One_Query $query, $overrideFilters = false) { $scheme = $query->getScheme(); $db = $this->db($scheme); $renderer = $this->getRenderer(); // Need to remember the old Select in case the One_Query is reused afterwards $oldSelect = $query->getSelect(); $query->setSelect(array('COUNT(*) AS total')); $sql = $renderer->render($query, $overrideFilters); // put the old Select back into the One_Query $query->setSelect($oldSelect); // execute query $result = mysql_query($sql, $db); if ($result == false) { throw new One_Exception(mysql_error() . '<br />' . $sql); } $count = mysql_result($result, 0, 'total'); return $count; }
/** * Return the number of results when the query is performed * * @param One_Query $query * @param boolean $overrideFilters * @return int */ public function executeSchemeCount(One_Query $query, $overrideFilters = false) { $scheme = $query->getScheme(); $db = $this->db($scheme); $renderer = $this->getRenderer(); // Need to remember the old Select in case the One_Query is reused afterwards $oldSelect = $query->getSelect(); $query->setSelect(array('COUNT( * ) AS total')); $sql = $renderer->render($query, $overrideFilters); // put the old Select back into the One_Query $query->setSelect($oldSelect); $db->setQuery($sql); return intval($db->loadResult()); }
/** * Return the number of results when the query is performed * * @param One_Query $query * @param boolean $overrideFilters * @return int */ public function executeSchemeCount(One_Query $query, $overrideFilters = false) { $scheme = $query->getScheme(); $db = $this->db($scheme); $renderer = $this->getRenderer(); // Need to remember the old Select in case the One_Query is reused afterwards $oldSelect = $query->getSelect(); $query->setSelect(array('COUNT(*) AS total')); $sql = $renderer->render($query, $overrideFilters); // put the old Select back into the One_Query $query->setSelect($oldSelect); // execute query $result = $db->query($sql); if ($result === false) { throw new One_Exception('MYSQLI error (' . $db->connect_errno . ') ' . $db->connect_error); } $row = $result->fetch_assoc(); $count = $row['total']; return $count; }