/** * {@inheritdoc} */ public function query($query, $resultsetType = Resultset::TYPE_ARRAY) { // This error may happen with the libmysql instead of mysqlnd and using set statement (set @test=1) // : "Attempt to read a row while there is no result set associated with the statement" try { /** * @var \Doctrine\DBAL\Driver\Mysqli\MysqliStatement */ $r = $this->dbal->query($query); $results = new Resultset($resultsetType); if ($r === false) { throw new Exception\InvalidArgumentException("Query cannot be executed [{$query}]."); } else { if ($r->columnCount() > 0) { while ($row = $r->fetch()) { $results->append((array) $row); } } } } catch (\Exception $e) { $msg = "Doctrine\\Dbal2 adapter query error: {$e->getMessage()} [{$query}]"; throw new Exception\InvalidArgumentException($msg); } return $results; }
/** * {@inheritdoc} */ public function query($query, $resultsetType = Resultset::TYPE_ARRAY) { try { //$query = "select * from product"; $stmt = $this->resource->prepare($query); if ($stmt === false) { $error = $this->resource->errorInfo(); throw new Exception\InvalidArgumentException($error[2]); } if (!$stmt->execute()) { throw new Exception\InvalidArgumentException('Statement could not be executed (' . implode(' - ', $this->resource->errorInfo()) . ')'); } $results = new Resultset($resultsetType); if ($stmt->columnCount() > 0) { while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { $results->append($row); } } $stmt->closeCursor(); } catch (Exception\InvalidArgumentException $e) { throw $e; } catch (\Exception $e) { $eclass = get_class($e); $msg = "GenericPdo '{$eclass}' : {$e->getMessage()} [{$query}]"; throw new Exception\InvalidArgumentException($msg); } return $results; }
/** * {@inheritdoc} */ public function query($query, $resultsetType = Resultset::TYPE_ARRAY) { try { //$r = $this->zendAdapter->query($query, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE); $r = $this->zendAdapter->query($query)->execute(); $results = new Resultset($resultsetType); if ($r === false) { throw new Exception\InvalidArgumentException('Query could not be executed ([$query])'); } elseif ($r instanceof \Zend\Db\ResultSet\ResultSet) { foreach ($r as $row) { $results->append((array) $row); } } elseif ($r instanceof \Zend\Db\Adapter\Driver\ResultInterface && $r->getFieldCount() > 0) { foreach ($r as $row) { $results->append($row); } } } catch (\Exception $e) { $msg = "ZendDb2 adapter query error: {$e->getMessage()} [{$query}]"; throw new Exception\InvalidArgumentException($msg); } return $results; }
/** * {@inheritdoc} */ public function query($query, $resultsetType = Resultset::TYPE_ARRAY) { try { //$r = $this->resource->query($query, MYSQLI_STORE_RESULT); $r = $this->resource->query($query, MYSQLI_STORE_RESULT); $results = new Resultset($resultsetType); if ($r === false) { throw new Exception\InvalidArgumentException("Query cannot be executed [{$query}]."); } elseif ($r !== true && !$r instanceof \mysqli_result) { throw new Exception\InvalidArgumentException("Query didn't return any result [{$query}]."); } elseif ($r instanceof \mysqli_result) { while ($row = $r->fetch_assoc()) { $results->append($row); } $r->close(); } } catch (Exception\InvalidArgumentException $e) { throw $e; } catch (\Exception $e) { $msg = "MysqliException: {$e->getMessage()} [{$query}]"; throw new Exception\InvalidArgumentException($msg); } return $results; }