public function run() { $this->prepareTables(); $repeats = $this->getRepeats(); $sql = 'SELECT txt FROM test'; $bar = new CliProgressBar($repeats); for ($i = 1; $i <= $repeats; ++$i) { Timer::start(); $result = ODb::rows($sql); foreach ($result as $value) { } Timer::stop(); $bar->update($i); } $this->addResult('non-generator', Timer::get()); Timer::reset(); $bar = new CliProgressBar($repeats); // Db class initialization $pool = new ConnectionPool(); $conn = new PdoConnection('master'); $conn->setDsn("mysql:host=localhost;dbname={$this->database};charset=utf8")->setUserName('root')->setPassword('')->setOptions([PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false]); $pool->addConnection($conn, true); PdoAdapter::setPool($pool); Db::setAdapter(PdoAdapter::instance()); for ($i = 1; $i <= $repeats; ++$i) { Timer::start(); $result = Db::rows($sql); foreach ($result as $value) { } Timer::stop(); $bar->update($i); } $this->addResult('generator', Timer::get()); $this->cleanup(); }
/** * Query with pagination * * @param string $sql Query * @param bool|DbPaginator $pager Pagination object * * @todo Add Pager type hints * @return array|bool */ public function query($sql, $pager = false) { if ($pager instanceof DbPaginator) { $sql = $this->builder->setPage($sql, $pager); } $result = Db::rows($sql); if (empty($result)) { return false; } if ($pager instanceof DbPaginator) { $pager->calcMaxPages(); } return $result; }
/** * @covers Veles\DataBase\Db::rows * * @dataProvider rowsProvider * * @param $adapter * @param $sql * @param $params * @param $types */ public function testRows($adapter, $sql, $params, $types) { Db::setAdapter($adapter); if ($types) { Db::rows($sql, $params, $types); } elseif ($params) { Db::rows($sql, $params); } else { Db::rows($sql); } }