Problemi di connessione a MySQL tramite PDO

Ho cercato di convertire la mia applicazione dall'uso della syntax mysql deprecata a PDO per la connessione al database e l'esecuzione di query, ed è stato un dolore finora.

In questo momento ho una class, db_functions.php, in cui sto cercando di creare una connessione PDO al database, oltre a eseguire tutte le operazioni CRUD all'interno di.

Ecco un campionamento del codice:

db_functions.php <?php class DB_Functions { private $db; // constructor function __construct() { require_once 'config.php'; // connecting to mysql try { $this->$db = new PDO('mysql:host=localhost;dbname=gcm', DB_USER, DB_PASSWORD); } catch (PDOException $e) { $output = 'Unable to connect to database server.' . $e->getMessage(); exit(); } } // destructor function __destruct() { } public function getAllUsers() { try { $sql = "select * FROM gcm_users"; //$result = mysql_query("select * FROM gcm_users"); $result = $this->$db->query($sql); return $result; } catch (PDOException $e) { $error = 'Error getting all users: ' . $e->getMessage(); } } 

Con quel codice, sto ricevendo il seguente errore:

 Notice: Undefined variable: db in C:\xampp\htdocs\gcm\db_functions.php on line 12 Fatal error: Cannot access empty property in C:\xampp\htdocs\gcm\db_functions.php on line 12 

La linea 12 è:

  $this->$db = new PDO('mysql:host=localhost;dbname=gcm', DB_USER, DB_PASSWORD); 

Come posso risolvere questo problema in modo da avere un'istanza corretta di una connessione PDO al mio database che posso usare per creare query in altri methods in db_functions , come getAllUsers()

Ho usato la risposta trovata in Come faccio a creare una class di connessione con l'integrazione delle dependencies e le interfacce? inutilmente.

TYPO

 //$this->$db = $this->db = 

anch'io

 //$this->$db->query($sql); $this->db->query($sql); 

e vorrei anche usare 127.0.0.1 invece di localhost per migliorare le performance altrimenti fare una connessione richiederà molto tempo … un paio di secondi solo per la connessione …