-
Notifications
You must be signed in to change notification settings - Fork 1
/
Database.php
76 lines (72 loc) · 1.57 KB
/
Database.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
class Database {
private $host= DB_HOST;
private $user=DB_USER;
private $pass= DB_PASS;
private $dbase= DB_NAME;
private $dbh;
private $error;
private $stmt;
public function __construct() {
$dsn='mysql:host=' .$this->host . ';dbname='.$this->dbase;
$options=array (
PDO :: ATTR_PERSISTENT => true ,
PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION);
try
{
$this->dbh=new PDO($dsn, $this->user,$this->pass,$options);
}
catch (PDOException $e)
{
$this->error=$e->getMessage();
}
}
public function query($query)
{$this->stmt=$this->dbh->prepare($query);
}
public function bind($param,$value,$type=null)
{if(is_null($type)){
switch(true){
case is_int ($value):
$type= PDO:: PARAM_INT;
break;
case is_bool ($value):
$type= PDO:: PARAM_BOOL;
break;
case is_null ($value):
$type= PDO:: PARAM_NULL;
break;
default :
$type =PDO :: PARAM_STR;
}
}
$this->stmt->bindValue ($param, $value, $type);
}
public function execute()
{return $this->stmt->execute();
}
public function resultset()
{$this->execute();
return $this->stmt->fetchAll(PDO :: FETCH_OBJ);
}
public function single()
{$this->execute();
return $this->stmt->fetch(PDO :: FETCH_OBJ);
}
public function rowCount()
{$this->execute();
return $this->stmt->rowCount();
}
public function lastInsertId()
{return $this->dbh->lastInsertId();
}
public function beginTransaction()
{return $this->dbh->beginTransaction();
}
public function endTransaction()
{return $this->dbh->commit();
}
public function cancelTransaction()
{return $this->dbh->rollBack();
}
}