diff options
Diffstat (limited to 'public/system/library/db/mysqli.php')
-rw-r--r-- | public/system/library/db/mysqli.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/public/system/library/db/mysqli.php b/public/system/library/db/mysqli.php new file mode 100644 index 0000000..2e40109 --- /dev/null +++ b/public/system/library/db/mysqli.php @@ -0,0 +1,63 @@ +<?php +namespace DB; +final class MySQLi { + private $connection; + + public function __construct($hostname, $username, $password, $database, $port = '3306') { + $this->connection = new \mysqli($hostname, $username, $password, $database, $port); + + if ($this->connection->connect_error) { + throw new \Exception('Error: ' . $this->connection->error . '<br />Error No: ' . $this->connection->errno); + } + + $this->connection->set_charset("utf8"); + $this->connection->query("SET SQL_MODE = ''"); + } + + public function query($sql) { + $query = $this->connection->query($sql); + + if (!$this->connection->errno) { + if ($query instanceof \mysqli_result) { + $data = array(); + + while ($row = $query->fetch_assoc()) { + $data[] = $row; + } + + $result = new \stdClass(); + $result->num_rows = $query->num_rows; + $result->row = isset($data[0]) ? $data[0] : array(); + $result->rows = $data; + + $query->close(); + + return $result; + } else { + return true; + } + } else { + throw new \Exception('Error: ' . $this->connection->error . '<br />Error No: ' . $this->connection->errno . '<br />' . $sql); + } + } + + public function escape($value) { + return $this->connection->real_escape_string($value); + } + + public function countAffected() { + return $this->connection->affected_rows; + } + + public function getLastId() { + return $this->connection->insert_id; + } + + public function connected() { + return $this->connection->ping(); + } + + public function __destruct() { + $this->connection->close(); + } +} |