Проблемы с подключением к MySQL с использованием PDO

Я пытаюсь преобразовать свое приложение с использованием устаревшего синтаксиса mysql в PDO для подключения к базе данных и выполнения запросов, и до сих пор это было больно.

Прямо сейчас у меня есть класс, db_functions.php, в котором я пытаюсь создать PDO-соединение с базой данных, а также выполнять все операции CRUD внутри.

Вот пример кода:

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(); } } 

С этим кодом я получаю следующую ошибку:

 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 

Строка 12:

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

Как я могу исправить это, чтобы у меня был надлежащий экземпляр подключения PDO к моей базе данных, который я могу использовать для создания запросов в других методах в db_functions , таких как getAllUsers()

Я использовал ответ, найденный в разделе Как создать класс соединения с инъекцией зависимостей и интерфейсами? но безрезультатно.