daily pastebin goal
6%
SHARE
TWEET

Untitled

a guest Jun 17th, 2017 55 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /**
  3.  * Database PDO Wrapper
  4. */
  5. if (!class_exists('Database')) {
  6.  
  7.     // Define configuration
  8.     define("DB_HOST", "localhost");
  9.     define("DB_USER", "username");
  10.     define("DB_PASS", "pass");
  11.     define("DB_NAME", "dbname");
  12.    
  13.     class Database extends PDO {
  14.        
  15.         private $host      = DB_HOST;
  16.         private $user      = DB_USER;
  17.         private $pass      = DB_PASS;
  18.         private $dbname    = DB_NAME;
  19.      
  20.         private $dbh;
  21.         private $error;
  22.        
  23.           private $stmt;
  24.      
  25.         public function __construct($dbuser="", $dbpass="") {
  26.               if (!empty($dbuser)) { $this->user = $dbuser; }
  27.               if (!empty($dbpass)) { $this->pass = $dbpass; }
  28.  
  29.             // Set DSN
  30.             $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
  31.        
  32.             // Set options
  33.             $options = array(
  34.                 PDO::ATTR_PERSISTENT    => true,
  35.                 PDO::ATTR_ERRMODE       => PDO::ERRMODE_EXCEPTION
  36.             );
  37.        
  38.             // Create a new PDO instanace
  39.             try {
  40.                 $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
  41.                 $this->dbh->exec("SET NAMES 'utf8'");
  42.             }
  43.             // Catch any errors
  44.             catch (PDOException $e) {
  45.                 $this->error = $e->getMessage();
  46.             }
  47.         }
  48.        
  49.        
  50.         // Prepare
  51.         public function query($query) {
  52.             $this->stmt = $this->dbh->prepare($query);
  53.         }
  54.        
  55.         // Bind
  56.         public function bind($param, $value, $type = null) {
  57.             if (is_null($type)) {
  58.                 switch (true) {
  59.                     case is_int($value):
  60.                         $type = PDO::PARAM_INT;
  61.                         break;
  62.                     case is_bool($value):
  63.                         $type = PDO::PARAM_BOOL;
  64.                         break;
  65.                     case is_null($value):
  66.                         $type = PDO::PARAM_NULL;
  67.                         break;
  68.                     default:
  69.                         $type = PDO::PARAM_STR;
  70.                 }
  71.             }
  72.             $this->stmt->bindValue($param, $value, $type);
  73.         }
  74.        
  75.         // Execute
  76.         public function execute() {
  77.             return $this->stmt->execute();
  78.         }
  79.        
  80.         // Result Set  
  81.         public function resultset($fetchType = PDO::FETCH_ASSOC) {
  82.             $this->execute();
  83.             return $this->stmt->fetchAll($fetchType);
  84.         }
  85.        
  86.         // Single
  87.         public function single($fetchType = PDO::FETCH_ASSOC) {
  88.             $this->execute();
  89.             return $this->stmt->fetch($fetchType);
  90.         }
  91.        
  92.         // Row Count
  93.         public function rowCount() {
  94.             return $this->stmt->rowCount();
  95.         }
  96.        
  97.         // Last Insert Id
  98.         public function lastInsertId() {
  99.             return $this->dbh->lastInsertId();
  100.         }
  101.        
  102.  
  103.         // Transactions
  104.         public function beginTransaction() {
  105.             return $this->dbh->beginTransaction();
  106.         }
  107.        
  108.         public function endTransaction() {
  109.             return $this->dbh->commit();
  110.         }
  111.        
  112.         public function cancelTransaction() {
  113.             return $this->dbh->rollBack();
  114.         }
  115.        
  116.         // Debug Dump Parameters
  117.         public function debugDumpParams() {
  118.             return $this->stmt->debugDumpParams();
  119.         }
  120.     }
  121. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top