-
-
Save bradtraversy/a77931605ba9b7cf3326644e75530464 to your computer and use it in GitHub Desktop.
<?php | |
/* | |
* PDO DATABASE CLASS | |
* Connects Database Using PDO | |
* Creates Prepeared Statements | |
* Binds params to values | |
* Returns rows and results | |
*/ | |
class Database { | |
private $host = DB_HOST; | |
private $user = DB_USER; | |
private $pass = DB_PASS; | |
private $dbname = DB_NAME; | |
private $dbh; | |
private $error; | |
private $stmt; | |
public function __construct() { | |
// Set DSN | |
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname; | |
$options = array ( | |
PDO::ATTR_PERSISTENT => true, | |
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION | |
); | |
// Create a new PDO instanace | |
try { | |
$this->dbh = new PDO ($dsn, $this->user, $this->pass, $options); | |
} // Catch any errors | |
catch ( PDOException $e ) { | |
$this->error = $e->getMessage(); | |
} | |
} | |
// Prepare statement with query | |
public function query($query) { | |
$this->stmt = $this->dbh->prepare($query); | |
} | |
// Bind values | |
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); | |
} | |
// Execute the prepared statement | |
public function execute(){ | |
return $this->stmt->execute(); | |
} | |
// Get result set as array of objects | |
public function resultset(){ | |
$this->execute(); | |
return $this->stmt->fetchAll(PDO::FETCH_OBJ); | |
} | |
// Get single record as object | |
public function single(){ | |
$this->execute(); | |
return $this->stmt->fetch(PDO::FETCH_OBJ); | |
} | |
// Get record row count | |
public function rowCount(){ | |
return $this->stmt->rowCount(); | |
} | |
// Returns the last inserted ID | |
public function lastInsertId(){ | |
return $this->dbh->lastInsertId(); | |
} | |
} |
Thanks Papa Brad!
Thank you Brad
god I need help
where actual you need help @absaaraslam
@Jnalis I'm having issues with the 3D Secure Card Payments. It gives an error and does not authenticate it.
can you share the type of error you are getting so people here we can help
Thanks i appreciate this so much
Even after 6 years, this is still helping all of us. Thank you for posting this for us n00bs :)
Came a long way from here and very proud<3
guys, do we still use php
guys, do we still use php
Yep! Finally got my project running well enough to migrate it out of my gitlab to a normal github repo.. Now I just have to squish about a million more bugs and I will be happy.
guys, do we still use php
Yep! Finally got my project running well enough to migrate it out of my gitlab to a normal github repo.. Now I just have to squish about a million more bugs and I will be happy.
im proud of u
fantastic