Skip to content

Instantly share code, notes, and snippets.

@jkga
Created February 13, 2017 07:22
Show Gist options
  • Save jkga/9984f1eebde2ec20ca51018809b2d311 to your computer and use it in GitHub Desktop.
Save jkga/9984f1eebde2ec20ca51018809b2d311 to your computer and use it in GitHub Desktop.
A PHP wrapper to connect to different databases using PHP Data Objects extension (PDO) ex. mysql, mysqli, postgressSQL
<?php
class DBCON{
/**
*initialize all the components for database
*
*allow you to construct parallel database session using different dbms like mysql,pgsql etc.
*
*@param string $db_ini_dbms set your current database management system
*@param string $db_ini_host set your host ex.127.0.0.1
*@param string $db_ini_username set your username ex. root
*@param string $db_ini_password set your password default empty
*@param string $db_ini_dbname set your database name default empty
*@param string $db_ini_port set your :port default empty
*@return PDO
*/
function __construct($db_ini_dbms,$db_ini_host,$db_ini_username,$db_ini_password=NULL,$db_ini_dbname='',$db_ini_port=''){
#pdo instance
$this->pdo=null;
#check for different dbms and catch errors for all exceptions
try{
switch ($db_ini_dbms) {
case 'mysql':
#mysql
$this->pdo=new PDO($db_ini_dbms.':host='.$db_ini_host.((!empty($db_ini_port)) ? (';port=' . $db_ini_port) : '').';dbname='.$db_ini_dbname,$db_ini_username,$db_ini_password);
break;
case 'mysqli':
#mysqli
mysqli_report(MYSQLI_REPORT_STRICT);
$this->pdo=new mysqli($db_ini_host,$db_ini_username,$db_ini_password,$db_ini_dbname);
break;
case 'pgsql':
#postgress
$this->pdo=new PDO($db_ini_dbms.':host='.$db_ini_host.((!empty($db_ini_port)) ? (';port=' . $db_ini_port) : '').';dbname='.$db_ini_dbname.';user='.$db_ini_username.';password='.$db_ini_password);
break;
default:
# code...
break;
}
}catch(Exception $e){ echo "error has occured.Please try to refresh the page"; }
return $this->pdo;
}
function __toString(){
return 'status:connected';
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment