Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: Tim
- * Date: 16-2-2016
- * Time: 13:27
- */
- class Database
- {
- /**
- * @var string
- */
- private $host;
- /**
- * @var string
- */
- private $name;
- /**
- * @var string
- */
- private $user;
- /**
- * @var string
- */
- private $pass;
- /**
- * @var object
- */
- private $db;
- /**
- * @var bool
- */
- private static $connection = false;
- /**
- * @var string
- */
- public $status;
- /**
- * Database constructor.
- * @param $db_host
- * @param $db_name
- * @param $db_user
- * @param $db_pass
- */
- public function __construct($db_host, $db_name, $db_user, $db_pass)
- {
- $this->host = $db_host;
- $this->name = $db_name;
- $this->user = $db_user;
- $this->pass = $db_pass;
- $this->connect();
- }
- public static function getInstance($db_host, $db_name, $db_user, $db_pass)
- {
- if (self::$connection == false) {
- self::$connection = new Database($db_host, $db_name, $db_user, $db_pass);
- }
- return self::$connection;
- }
- /**
- * @return string
- */
- public function connect()
- {
- try {
- $this->db = new PDO ("mysql:host=$this->host; dbname=$this->name", $this->user, $this->pass);
- $this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
- $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- //echo "yee, db connectie gelukt";
- $this->status = "Yea, db connectie gelukt";
- } catch (PDOExeption $error) {
- return $error->getfile() . $error->getline();
- $this->status = "Oeps, er is iets mis gegaan";
- }
- }
- /**
- * @param $query
- * @return mixed
- */
- public function query($query)
- {
- $select = $this->db->prepare($query);
- $select->execute();
- $results = $select->fetchAll(PDO::FETCH_ASSOC);
- return $results;
- }
- /**
- * @param $kolommen
- * @param $queryLong
- * @param array $where
- * @return mixed
- */
- public function selectAdvanced($kolommen, $queryLong, $where = [])
- {
- $query = "SELECT " . implode(", ", $kolommen) . " FROM ";
- $query .= $queryLong;
- $where_keys = array_keys($where);
- foreach ($where_keys as $k => $v) {
- $where_keys[$k] = "$v=:$v";
- }
- $query .= " WHERE " . implode(" AND ", $where_keys);
- //echo $query; exit;
- $select = $this->db->prepare($query);
- $arr = array_merge($where);
- foreach ($arr as $key => &$val) {
- $select->bindParam(":" . $key, $val);
- }
- $select->execute();
- $results = $select->fetchAll(PDO::FETCH_ASSOC);
- return $results;
- }
- /**
- * @param $kolom
- * @param $table
- * @param array $params
- * @return mixed
- */
- public function select($kolom, $table, $params = [])
- {
- $where = "";
- if (!empty($params)) {
- $where = " WHERE ";
- foreach ($params as $operator => $params) {
- $where_keys = array_keys($params);
- foreach ($where_keys as $k => $v) {
- $where_keys[$k] = "$v" . $operator . ":$v";
- }
- }
- $where .= implode(" AND ", $where_keys);
- }
- $select = $this->db->prepare("SELECT " . $kolom . " FROM " . $table . $where);
- // bindParam statements
- foreach ($params as $key => &$val) {
- $select->bindParam(":" . $key, $val);
- }
- $select->execute();
- $results = $select->fetchAll(PDO::FETCH_ASSOC);
- return $results;
- }
- /**
- * @param $table
- * @param $arr
- * @param bool $is_replace
- * @return mixed
- */
- public function insert($table, $arr, $is_replace = false)
- {
- if ($is_replace)
- $query = "REPLACE";
- else
- $query = "INSERT";
- $arr_keys = array_keys($arr);
- foreach ($arr_keys as $k => $v) {
- $arr_keys[$k] = "$v=:$v";
- }
- $query .= " INTO $table SET " . implode(", ", $arr_keys);
- $insert = $this->db->prepare($query);
- // bindParam statements
- foreach ($arr as $key => &$val) {
- $insert->bindParam(":" . $key, $val);
- }
- $insert->execute();
- return $this->db->lastInsertId();
- }
- /**
- * @param $table
- * @param $arr
- * @param array $where
- */
- public function update($table, $arr, $where = [])
- {
- $query = "UPDATE";
- $arr_keys = array_keys($arr);
- foreach ($arr_keys as $k => $v) {
- $arr_keys[$k] = "$v=:$v";
- }
- $where_keys = array_keys($where);
- foreach ($where_keys as $k => $v) {
- $where_keys[$k] = "$v=:$v";
- }
- $query .= " $table SET " . implode(", ", $arr_keys) . " WHERE " . implode(" AND ", $where_keys);
- $update = $this->db->prepare($query);
- // bindParam statements
- $arr = array_merge($arr, $where);
- foreach ($arr as $key => &$val) {
- $update->bindParam(":" . $key, $val);
- }
- $update->execute();
- }
- /**
- * @param $table
- * @param $where
- * @param $what
- */
- public function delete($table, $where, $what = "")
- {
- $query = "DELETE ";
- $where_keys = array_keys($where);
- foreach ($where_keys as $k => $v) {
- $where_keys[$k] = "$v=:$v";
- }
- if (is_array($what))
- $what = implode(", ", $what);
- else
- $what = "";
- $query .= $what . "FROM " . $table . " WHERE " . implode(" AND ", $where_keys);
- $delete = $this->db->prepare($query);
- // bindParam statements
- foreach ($where as $key => &$val) {
- $delete->bindParam(":" . $key, $val);
- }
- $delete->execute();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement