<?php
$link = null;
class connectdb{
private $host = '127.0.0.1';
private $port = 3306;
private $database = 'nameDatabase';
private $username = 'usuario';
private $password = 'password';
public $countRow = 0;
public $countColumn = 0;
private $msg;
private $desarrollo = 'PROD';/*PROD = PARA MODO PRODUCCION; DESA = PARA MODO DESARROLLO*/
public function __construct() {
$dsn = "mysql:host=$this->host;port=$this->port;dbname=$this->database";
try{
if($GLOBALS["link"] === null){
$GLOBALS["link"]= new PDO(
$dsn,
$this->username,
$this->password,
array(
PDO::ATTR_PERSISTENT => false,
PDO::MYSQL_ATTR_LOCAL_INFILE=>true
)
);
$GLOBALS["link"]->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$GLOBALS["link"]->exec("set names utf8");
}
}catch(PDOException $e){
echo "ERROR: " . $e->getMessage();
}
}
public function query($query){
try {
$statement = $GLOBALS["link"]->query($query);
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
$this->countRow = $statement->rowCount();
$this->countColumn = $statement->columnCount();
} catch (PDOException $e) {
$er = $e->getTrace();
$bug = $er[1]['args'][0];
if($this->desarrollo == 'DESA'){
$result = array('error'=>'ERROR: '.$e->errorInfo[2].'<br>SP:: '.$bug);
}elseif($this->desarrollo == 'PROD'){
$result = array('error'=>$this->messageError($e->errorInfo[1]));
}
}
return $result;
}
}
?>
Emplear cadena de conexion en clase:
require_once(APP_DIR_CLASS . 'connection.class.php');
class nameClase extends connectdb
{
}