Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class db {
- protected $connection;
- protected $query;
- public $query_count = 0;
- public function __construct($dbhost = 'localhost', $dbuser = 'root', $dbpass = '', $dbname = '', $charset = 'utf8') {
- $this->connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
- if ($this->connection->connect_error) {
- die('Failed to connect to MySQL - ' . $this->connection->connect_error);
- }
- $this->connection->set_charset($charset);
- }
- public function query($query) {
- if ($this->query = $this->connection->prepare($query)) {
- if (func_num_args() > 1) {
- $x = func_get_args();
- $args = array_slice($x, 1);
- $types = '';
- $args_ref = array();
- foreach ($args as $k => &$arg) {
- if (is_array($args[$k])) {
- foreach ($args[$k] as $j => &$a) {
- $types .= $this->_gettype($args[$k][$j]);
- $args_ref[] = &$a;
- }
- } else {
- $types .= $this->_gettype($args[$k]);
- $args_ref[] = &$arg;
- }
- }
- array_unshift($args_ref, $types);
- call_user_func_array(array($this->query, 'bind_param'), $args_ref);
- }
- $this->query->execute();
- if ($this->query->errno) {
- die('Unable to process MySQL query (check your params) - ' . $this->query->error);
- }
- $this->query_count++;
- } else {
- die('Unable to prepare statement (check your syntax) - ' . $this->query->error);
- }
- return $this;
- }
- public function fetchAll() {
- $params = array();
- $meta = $this->query->result_metadata();
- while ($field = $meta->fetch_field()) {
- $params[] = &$row[$field->name];
- }
- call_user_func_array(array($this->query, 'bind_result'), $params);
- $result = array();
- while ($this->query->fetch()) {
- $r = array();
- foreach ($row as $key => $val) {
- $r[$key] = $val;
- }
- $result[] = $r;
- }
- $this->query->close();
- return $result;
- }
- public function fetchArray() {
- $params = array();
- $meta = $this->query->result_metadata();
- while ($field = $meta->fetch_field()) {
- $params[] = &$row[$field->name];
- }
- call_user_func_array(array($this->query, 'bind_result'), $params);
- $result = array();
- while ($this->query->fetch()) {
- foreach ($row as $key => $val) {
- $result[$key] = $val;
- }
- }
- $this->query->close();
- return $result;
- }
- public function numRows() {
- $this->query->store_result();
- return $this->query->num_rows;
- }
- public function close() {
- return $this->connection->close();
- }
- public function affectedRows() {
- return $this->query->affected_rows;
- }
- private function _gettype($var) {
- if(is_string($var)) return 's';
- if(is_float($var)) return 'd';
- if(is_int($var)) return 'i';
- return 'b';
- }
- }
- ?>
- public function __construct($db) {
- $this->db = $db;
- }
Add Comment
Please, Sign In to add comment