Buona sera,vorrei cortesemente un'aiuto in quanto dovrei fare una classe connessione verso un database.
Il problema che ho è che non ci riesco e mi da qualche problema,ho letto qualche tutorial in merito,ma per Php e Access non ho trovato nulla, ho scaricato una connessione verso MySql e ho cercato di personalizzarla,con esito negativo..
Vi chiedo di darmi una spiegazione di quello che devo fare,questo è quello che ho:
<?php
class connection{
var $dbhost = "CarrelloSpesa";
var $dbname = "CarrelloSpesa.mdb";//nome database
var $dbuser = "";//nome utente
var $dbpass = "";//pass utente
var $result = false; # Result delle query
var $dbh = NULL; //Database connection (Handle)
var $persistente = false; #Flag connessione persistente
//costruttore crea l'oggetto con le 4 variabili che riceve e invoca la funzione display()
//per visualizzare lo stato della connessione
//function connection($p,$n,$u,$p,$r,$c,$per=false){
function connection($dbhost,$dbname,$dbuser,$dbpass,$persis tente=false){
$this->server = $dbhost;
$this->user = $dbuser;
$this->password = $dbpass;
$this->sys_dbname = $dbname;
$this->dbh = $dbh;
$this->result = $result;
$this->persistente = $persistente;
}
function display(){
//visualizza lo stato della connessione
echo("
" . " il percorso del DataBase è " . $this->dbhost.
"
" . " il nome del DataBase è " . $this->dbname.
"
" . " lo user del DataBase è " . $this->dbuser.
"
" . " la pass del DataBase è " . $this->dbpass .
"
" . " la connessione del DataBase è " . $this->dbh .
"
" . " il risultato del DataBase è " . $this->result .
"
" . " la connessione è persistente? " . $this->persistente);
}
function apriConn($apConn){
//apre la connessione
if($this->persistente){//controllo in caso la connessione è permanente oppure no
$func_db_conn = 'odbc_pconnect';
}
else{
$func_db_conn = 'odbc_connect';
}
$this->dbh = $func_db_conn($this->server,$this->user,$this->password) or die ('Impossibile Connettersi!!'); // errore nella connessione
if(!$this->dbh) return FALSE;
if(!odbc_exec($this->sys_dbname,$this->dbh)){
return FALSE;
}
return TRUE;
}
function chiudiConn(){
//chiude una connessione
return(odbc_close($this->dbh));
}
function db_error(){
# restituisce il messaggio di errore della precedente operazione
if (odbc_error()){
echo odbc_errormsg($dbh);
}
}
function db_free_result(){
# libera la memoria impiegata da un risultato
return(odbc_free_result($this->result));
}
function db_query($sql) {
#Invia una richiesta SQL a MySQL
$this->result = odbc_result($sql, $this->dbh);
return ( $this->result != false);
}
}
$db = new connection();
$db->dbC('localhost','root','','test');
$db->apriConn('$cn_string');
$db->db_connect();
$db->db_query('Show table');
$a[0] = $db->db_fetch_row();
$a[1] = $db->db_num_rows();
echo $a[0][0].$a[1];
$db->db_free_result();
$db->db_close();
?>
Questo è quanto..
L'errore che mi da è il seguente:
Warning: Missing argument 1 for connection() in c:\phpdev\www\public\carrelloacquistiphp_access\Cl asseConnection.class.php on line 19
Warning: Missing argument 2 for connection() in c:\phpdev\www\public\carrelloacquistiphp_access\Cl asseConnection.class.php on line 19
Warning: Missing argument 3 for connection() in c:\phpdev\www\public\carrelloacquistiphp_access\Cl asseConnection.class.php on line 19
Warning: Missing argument 4 for connection() in c:\phpdev\www\public\carrelloacquistiphp_access\Cl asseConnection.class.php on line 19
Warning: SQL error: [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato., SQL state IM002 in SQLConnect in c:\phpdev\www\public\carrelloacquistiphp_access\Cl asseConnection.class.php on line 52
Impossibile Connettersi!!
Ho visto che l'errore è principalmente:
"Nome origine dati non trovato e driver predefinito non specificato"
Ho fatto qualche prova, ma qui non capisco dove va inserito il nome origine dati e driver specificato...
Perchè solitamente li mettevo direttamente su ogni pagina e funziona bene,ma con la classe non è cosi semplice...
Vi ringrazio per l'aiuto.....![]()
![]()