Skip to content

Instantly share code, notes, and snippets.

@jonahlyn
Created September 1, 2011 16:59
Show Gist options
  • Save jonahlyn/1186647 to your computer and use it in GitHub Desktop.
Save jonahlyn/1186647 to your computer and use it in GitHub Desktop.
PDO Connection Class
<?php
/*
* Class DBConnection
* Create a database connection using PDO
* @author jonahlyn@unm.edu
*
* Instructions for use:
*
* require_once('settings.config.php'); // Define db configuration arrays here
* require_once('DBConnection.php'); // Include this file
*
* $database = new DBConnection($dbconfig); // Create new connection by passing in your configuration array
*
* $sqlSelect = "select * from ....."; // Select Statements:
* $rows = $database->getQuery($sqlSelect); // Use this method to run select statements
*
* foreach($rows as $row){
* echo $row["column"] . "<br/>";
* }
*
* $sqlInsert = "insert into ...."; // Insert/Update/Delete Statements:
* $count = $database->runQuery($sqlInsert); // Use this method to run inserts/updates/deletes
* echo "number of records inserted: " . $count;
*
* $name = "jonahlyn"; // Prepared Statements:
* $stmt = $database->dbc->prepare("insert into test (name) values (?)");
* $stmt->execute(array($name));
*
*/
Class DBConnection {
// Database Connection Configuration Parameters
// array('driver' => 'mysql','host' => '','dbname' => '','username' => '','password' => '')
protected $_config;
// Database Connection
public $dbc;
/* function __construct
* Opens the database connection
* @param $config is an array of database connection parameters
*/
public function __construct( array $config ) {
$this->_config = $config;
$this->getPDOConnection();
}
/* Function __destruct
* Closes the database connection
*/
public function __destruct() {
$this->dbc = NULL;
}
/* Function getPDOConnection
* Get a connection to the database using PDO.
*/
private function getPDOConnection() {
// Check if the connection is already established
if ($this->dbc == NULL) {
// Create the connection
$dsn = "" .
$this->_config['driver'] .
":host=" . $this->_config['host'] .
";dbname=" . $this->_config['dbname'];
try {
$this->dbc = new PDO( $dsn, $this->_config[ 'username' ], $this->_config[ 'password' ] );
} catch( PDOException $e ) {
echo __LINE__.$e->getMessage();
}
}
}
/* Function runQuery
* Runs a insert, update or delete query
* @param string sql insert update or delete statement
* @return int count of records affected by running the sql statement.
*/
public function runQuery( $sql ) {
try {
$count = $this->dbc->exec($sql) or print_r($this->dbc->errorInfo());
} catch(PDOException $e) {
echo __LINE__.$e->getMessage();
}
return $count;
}
/* Function getQuery
* Runs a select query
* @param string sql insert update or delete statement
* @returns associative array
*/
public function getQuery( $sql ) {
$stmt = $this->dbc->query( $sql );
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt;
}
}
<?php
/*
* Database Connection Settings
*/
$localhost = array(
'driver' => 'mysql',
'host' => 'localhost',
'dbname' => 'database',
'username' => 'username',
'password' => 'password');
@csteri
Copy link

csteri commented Oct 11, 2017

Hello,

How can to instance to DBConnection class and call the getQuery () method in a function?
example:

function Myfunction () { $sqlSelect = "...."; $database = new DBConnection($dbconfig); $rows = $database->getQuery($sqlSelect); }

Thank you!

@azazqadir
Copy link

Database connection with PDO in php is really easy. You can easily perform the crud function in pdo after you have established the connectivity. You can follow this tutorial to see pdo connection class in action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment