Newsgroup: it.comp.www.php
Titolo: php e classe mysql

Ciao a tutti ,
anche se e quasi un annetto che programmo in php solo adesso mi
sto avvicinando alla programmazione ad oggetti .
come mia prima classe ne ho creata una con mysql:
<?php
class db_class {
var $username ;
var $password ;
var $hostname ;
var $dbname;
var $link ;
var $result ;
var $dati;
var $errordesc;
var $errornum;
//STAMPA IL MESSAGGIO DI ERRORE
function error_message($msg)
{
$this-> errordesc = mysql_error();
$this-> errornum = mysql_errno();
$Message = "<font size=\"2\" color=\"RED\" Face=\"Verdana\" > Si è
verificato un errore:".$msg."<br>" ;
$Message .= "<B>Errore in linea: </B>".__LINE__."<br>";
$Message .= "<B>Errore</B> : (".$this-> errornum.") ".$this->
errordesc."<br>";
echo $Message ;
}
function db_params($hostname,$user,$password)
{
 $this -> hostname = $hostname;
 $this -> username = $user;
 $this -> password = $password;
 $this -> dati["hostname"] = 1 ;
 $this -> dati["username"] = 1 ;
 $this -> dati["password"] = 1 ;
}
//CONNESSIONE AL DB
function db_connect()
{
//Controllo se username non è definito
if (!isset($this-> dati["username"]))
{ $this -> set_Username("root") ;
}
//Controllo se host non è definito
if (!isset($this-> dati["hostname"]))
{ $this -> set_Hostname("localhost") ;
}
//Controllo se host non è definito
if (!isset($this-> dati["password"]))
{ $this -> set_Password("") ;
}
if (!$this-> link = @mysql_connect($this -> hostname ,
        $this -> username ,
        $this -> password ))
        {
$this -> error_message("Non posso connettermi al Host: ".$this-> hostname);
        }
}
//CONNESSIONE PERMANENTE AL DB
function db_pconnect()
{
//Controllo se username non è definito
if (!isset($this-> dati["username"]))
{ $this -> set_Username("root") ;
}
//Controllo se host non è definito
if (!isset($this-> dati["hostname"]))
{ $this -> set_Hostname("localhost") ;
}
//Controllo se host non è definito
if (!isset($this-> dati["password"]))
{ $this -> set_Password("") ;
}
if (!$this-> link = @mysql_pconnect($this -> hostname ,
        $this -> username ,
        $this -> password ))
        {
$this -> error_message("Non posso connettermi al Host: ".$this-> hostname);
        }
}
//SELEZIONA IL DB DA UTLIZZARE
function db_select($database)
{
if (@!mysql_select_db($database,$this->link))
{
$this->error_message("Impossibile collegarsi al db: ".$database);
}
}
function db_query($query)
{
if(!$this -> result = @mysql_query($query,$this->link))
{
$this->error_message("Errore nella query: ".$query);
}
return $this -> result ;
}
Function query_array($query_id="")
{
if($query_id=="")
 {
$record = @mysql_fetch_array($this-> result);
 }else
 {
$record = @mysql_fetch_array($query_id);
 }
return $record ;
}
//NUMERO DI RIGHE
function db_numrows()
{
return @mysql_num_rows($this -> result) ;
}
//RESTITUISCE L'ID DELL'ULTIMO INSERIMENTO
FUNCTION db_lastid()
{
@return mysql_insert_id($this-> link);
}
function db_result($num=0,$campo=0)
{
if (!$result_query = @mysql_result($this -> result ,$num,$campo)
{
$this -> error_message("Errore in $result_query");
}
}
//LIBERA DAI RISULTATI DELLE QUERY AD DB
function db_freeresult()
{
@mysql_free_result($this->link);
}
//CHIUDE LA CONNESSIONE AL DB
function db_close()
{
@mysql_close($this->link);
}
}//FINE DELLA CLASSE
?>
Critiche ?? errori ? suggerimenti ??
come posso migliorarla ??
Tnx a tutti

 come posso migliorarla ??
Ammesso che valga la pena ricreare cose già realizzate da altri, valutazione
che resta del tutto personale, io darei uno sguardo a Metabase e ADODB che
sono due librerie davvero notevoli e da cui potresti trarre ispirazione.
Le mie preferenze personali vanno a ADODB, ma, ancora una volta, si tratta
solo di gusti
--
----------------------------
Massimo Foti
mas...@massimocorner.com
Team Macromedia Volunteer for Dreamweaver
http://www.macromedia.com/go/team
----------------------------