Ciao!
Sto costruendo una semplice applicazione di connessione ad un database MySQL e durante una verifica (in locale) a mezzo var_dump() mi sono accorto di una cosa che prima non mi capitava mai, ovvero nel link di riferimento alla connessione (OOP) non c'è solo l'handle della connessione ma anche la stringa di identificazione del database, il nome utente e la password
Ecco un esempio: ( var_dump($link); )
Database Object ( [link] => PDO Object ( ) [pass_Database_private] => Array ( [user] => password [root] => password ) [dsn_Database_Private] => mysql:dbname=bibliography;host=localhost [root_Database_Private] => )
---- al posto degli unserscore ( _ ) ci vanno i due punti ( : ) ma mettendoceli il forum mi riempie la stringa di icone ----
Ovviamente nomi e password qui sono mascherati ma per il resto il mistero resta.
La classe che ho creata e che mi connette al DB è quella sottostante.
Codice PHP:
class Database {
public $link = null;
private $pass = array('user' => 'password', 'root' => 'password');
private $dsn = 'mysql:dbname=bibliography;host=localhost';
public function __construct($utente = 'user') {
try {
if ($this->link == null) {
$this->link = new PDO($this->dsn, $utente, $this->pass[$utente], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$this->link->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
} // fine try
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
catch (Exception $e) {
echo 'Connection failed: ' . $e->getMessage();
}
} // __construct()
public function __destruct() {
unset($this->link);
$this->root = false;
} // __destruct
} // Fine classe database
richiamata mediante
Codice PHP:
$link = new Database();
e se faccio il var_dump() alla variabile $link mi esce quella roba e non mi era mai successo prima di ora (versione attuale del PHP 5.4.16 (MySQL 5.0.10).
Qualcuno me la sa spiegare cortesemente?