PHP: classe di connessione DB
20/11/2012In questo articolo riporto un esempio di costruzione di una classe che gestisce la connessione al Db e un set di interrogazioni standard.
Il codice è commentato in modo da fornire una minima spiegazione di ogni singolo elemento che la compone.
Ovviamente altre eventuali funzioni ritenute necessarie possono esser aggiunte e inserite!
La classe andrà salvata in un file a se stante e dovrà essere richiamata con il passaggio dei dati di connessione per ogni funzione evocata.
Class DbConnect { // inzio classe
var $host = '';
var $user = '';
var $password = '';
var $database = '';
var $persistent = false;
var $conn = NULL;
var $result= false;
var $error_reporting = false;
// la funzione che opererà alla chiamata della classe
function DbConnect ($host, $user, $password, $database, $error_reporting=true, $persistent=false) {
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->database = $database;
$this->persistent = $persistent;
$this->error_reporting = $error_reporting;
}
function open() { // apertura open
if ($this->persistent) {
$func = 'mysql_pconnect';
} else {
$func = 'mysql_connect';
}
// connessione al server mysql
$this->conn = $func($this->host, $this->user, $this->password);
if (!$this->conn) {
return false;
}
// selezione del DB
if (@!mysql_select_db($this->database, $this->conn)) {
return false;
}
return true;
}
// chiusura DB
function close() {
return (@mysql_close($this->conn));
}
// se error_reporting attivato riporto errore
function error() {
if ($this->error_reporting) {
return (mysql_error()) ;
}
} // chiusura open
// gruppo funzioni interrogazione
function query($sql) {
$this->result = @mysql_query($sql, $this->conn);
return($this->result != false);
}
function affectedrows() {
return(@mysql_affected_rows($this->conn));
}
function numrows() {
return(@mysql_num_rows($this->result));
}
function fetchobject() {
return(@mysql_fetch_object($this->result, MYSQL_ASSOC));
}
function fetcharray() {
return(mysql_fetch_array($this->result));
}
function fetchassoc() {
return(@mysql_fetch_assoc($this->result));
}
function freeresult() {
return(@mysql_free_result($this->result));
}
} // fine classe