Finalmente sto cominciando a capire l'oop...
Ma sto litigando con una cosa... non riesco a chiudere una connessione al db (sicuramente perchè non riesco a passargli la connessione che devo chiudere...) come faccio?
Ecco il codice che ho scritto finora:
prova.php
Codice PHP:
<?php
require_once("config.inc.php");
$start = carica::classe(_OB);
$start->connetti();
$start->disconnetti();
?>
config.inc.php
Codice PHP:
<?php
require_once("classes/init.class.php");
$_CONFIG['DB_HOST'] = "localhost";
$_CONFIG['DB_USER'] = "root";
$_CONFIG['DB_PASSWORD'] = "123456";
$_CONFIG['DB_NAME'] = "miodb";
?>
init.class.php
Codice PHP:
<?php
class carica{
public static function classe($classe){
if (require_once $classe){
$pos = strrpos($classe, "/");
$classname = ucfirst(substr($classe, ($pos+1),((strlen($classe)-1) - ($pos+10))));
return new $classname();
}else{
throw new Exception ('Driver not found');
}
}
}
define("_MYSQL",$_SERVER["DOCUMENT_ROOT"]."/classes/dbMySql.class.php");
define("_OB",$_SERVER["DOCUMENT_ROOT"]."/classes/ob.class.php");
?>
ob.class.php
Codice PHP:
<?php
require_once(_MYSQL);
class Ob extends DbMySql{
public function __construct(){
}
public function connetti(){
//fai altre cose e poi connetti
//non ho messo gli if per non allungare il codice sul forum
$conn = carica::classe(_MYSQL);
}
public function disconnetti(){
//fai altre cose e poi disconnetti
//non ho messo gli if per non allungare il codice sul forum
parent::__sleep();
}
}
?>
dbMySql.class.php
Codice PHP:
<?php
class DbMySql{
protected $link;
private $config;
public function __construct(){
global $_CONFIG;
$this->server = $_CONFIG['DB_HOST'];
$this->username = $_CONFIG['DB_USER'];
$this->password = $_CONFIG['DB_PASSWORD'];
$this->db = $_CONFIG['DB_NAME'];
$this->connect();
}
private function connect(){
$this->link = mysql_connect($this->server, $this->username, $this->password);
mysql_select_db($this->db, $this->link);
}
public function __sleep(){
mysql_close($this->link);
}
public function __wakeup(){
$this->connect();
}
}
?>
Grazie ancora per l'aiuto!