Advertisement
Guest User

Databázový wrapper

a guest
Aug 22nd, 2015
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.42 KB | None | 0 0
  1. <?php
  2. class MyDB {
  3.     private static $options = array(
  4.         PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  5.     );
  6.     private $db;
  7.     private $dsn;
  8.  
  9.     function __construct($dsn) {
  10.         $this->dsn = $dsn;
  11.     }
  12.  
  13.     private function getDB() {
  14.         if (!isset($this->db)) {
  15.             $this->db = new PDO($this->dsn, NULL, NULL, self::$options);
  16.         }
  17.         return $this->db;
  18.     }
  19.  
  20.     function query($sql) {
  21.         try {
  22.             return $this->getDB()->query($sql);
  23.         } catch (PDOException $error) {
  24.             die("Nastala chyba v dotazu: ".$error->getMessage());
  25.         }
  26.     }
  27.  
  28.     function prepare($sql) {
  29.         try {
  30.             return $this->getDB()->prepare($sql);
  31.         } catch (PDOException $error) {
  32.             die("Nastala chyba v dotazu: ".$error->getMessage());
  33.         }
  34.     }
  35. }
  36.  
  37. $db = new MyDB('sqlite::memory:');
  38.  
  39. $db->query("CREATE TABLE users (username, password, email, reg_time, reg_ip)");
  40.  
  41. $insert = $db->prepare(
  42.     "INSERT INTO users (username, password, email, reg_time, reg_ip)
  43.        VALUES (:user, :pass, :email, :time, :ip)"
  44. );
  45. $data = array(
  46.     ":user" => 'user',
  47.     ":pass" => 'pass',
  48.     ":email" => 'email',
  49.     ":time" => 'reg_time',
  50.     ":ip" => 'reg_ip',
  51. );
  52. $insert->execute($data);
  53.  
  54. $select = $db->prepare('SELECT * FROM users');
  55. $select->execute();
  56. while ($row = $select->fetch(PDO::FETCH_ASSOC)) {
  57.     print_r($row);
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement