コード例 #1
0
ファイル: Offsetter.php プロジェクト: FTeichmann/Erfurt
 /**
  * Returns the number of rows that the given query will return.
  *
  * @param array $arSql Array with sql parts and at least keys 'from' and 'where' set.
  * @return int Number of rows returned.
  */
 protected function _getCount($arSql)
 {
     require_once 'Erfurt/Sparql/EngineDb/SqlMerger.php';
     $sql = Erfurt_Sparql_EngineDb_SqlMerger::getCount($this->_query, $arSql);
     $dbResult = $this->_engine->sqlQuery($sql);
     $nCount = 0;
     foreach ($dbResult as $row) {
         $nCount = intval($row['count']);
         break;
     }
     return $nCount;
 }
コード例 #2
0
ファイル: QueryOptimizer.php プロジェクト: FTeichmann/Erfurt
 protected function _queryDb($query, $arSql, $nOffset, $nLimit)
 {
     require_once 'Erfurt/Sparql/EngineDb/SqlMerger.php';
     $strSql = Erfurt_Sparql_EngineDb_SqlMerger::getSelect($query, $arSql);
     #echo $strSql;
     if ($strSql === '()') {
         return array();
     }
     if ($nLimit === null && $nOffset == 0) {
         $ret = $this->_engine->sqlQuery($strSql);
     } else {
         if ($nLimit === null) {
             $ret = $this->_engine->sqlQuery($strSql . ' LIMIT ' . $nOffset . ', 18446744073709551615');
         } else {
             $ret = $this->_engine->sqlQuery($strSql . ' LIMIT ' . $nOffset . ', ' . $nLimit);
         }
     }
     #var_dump($ret->fetchAll());exit;
     return $ret;
 }