Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Segue código, mais detalhes, no meu blog:
:seta: http://henriquebarcelos.in/blog/2012/08/20/php-oo-classe-simples-para-acesso-a-banco-de-dados/
class Db_Driver {
private $connector;
private static $defaultConnector;
public function __construct(MySQLi $conn = null) {
$this->connect($conn);
}
public static setDefaultConnector(MySQLi $conn) {
self::$defaultConnector = $conn;
}
public static getDefaultConnector() {
return self::$defaultConnector;
}
public function connect(MySQLi $conn = null) {
if(!$this->isConnected()) {
if($conn === null) {
if(self::$defaultConnector === null) {
throw new Exception('Não existe nenhum conector
com o banco de dados!');
} else {
$conn = self::$defaultConnector;
}
}
$this->connector = $conn;
}
}
public function disconnect() {
if($this->isConnected()) {
$this->connector->close();
$this->connector = null;
}
}
public function isConnected() {
return $this->connector instanceof MySQLi;
}
public function getConnector() {
$this->connect();
return $this->connector;
}
public function query($sql) {
$this->connect();
$result = $this->connector->query($sql);
if(!$result) {
throw new Exception("Erro SQL #{$this->connector->errno}:
{$this->connector->error}");
}
return $result;
}
public function fetch($sql) {
$result = $this->query($sql);
return $result->fetch_assoc();
}
public function fetchAll($sql) {
$data = array();
$result = $this->query($sql);
while($cursor = $result->fetch_assoc()) {
$data[] = $cursor;
}
return $data;
}
public function lastId() {
return $this->connector->insert_id;
}
}Carregando comentários...