connection = new \SQLite3($hostname.$database, SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, $password); if (!$this->connection) { throw new \Phacil\Framework\Exception('Error: ' . $this->connection->lastErrorMsg() . '
Error No: ' . $this->connection->lastErrorCode()); } } /** * * @param string $sql * @return \Phacil\Framework\Databases\Object\ResultInterface|true * @throws \Phacil\Framework\Exception */ public function query($sql){ //$query = $this->connection->query($sql); if ($stm = $this->connection->prepare($sql)) { $query = $stm->execute(); if (!$query instanceof \SQLite3Result || $query->numColumns() == 0) return true; $data = []; while ($row = $query->fetchArray(SQLITE3_ASSOC)) { $data[] = $row; } $result = new \Phacil\Framework\Databases\Object\Result(); $result->setNumRows((!empty($data)) ? count($data) : 0); $result->setRow(isset($data[0]) ? $data[0] : array()); $result->setRows($data); $query->finalize(); return $result; } else { throw new \Phacil\Framework\Exception('Error: ' . $this->connection->lastErrorMsg() . '
Error No: ' . $this->connection->lastErrorCode() . '
' . $sql); } } /** * @param string $value * @return string */ public function escape($value) { return $this->connection->escapeString($value); } /** @return int */ public function countAffected() { return $this->connection->changes(); } /** @return int */ public function getLastId() { return $this->connection->lastInsertRowID(); } /** @return bool */ public function isConnected() { return ($this->connection) ? true : false; } /** @return void */ public function __destruct() { $this->connection->close(); } }