Как я могу получить данные из моей базы данных внутри классов?
У меня есть таблица users
в моей базе данных, и я хочу получить доступ к этим данным объектно-ориентированным способом.Это означает, что я не хочу писать запросы все время в своем коде, вместо этого я хочу получить эти данные, скажем, $Users->getUserById(2)->getName();
Но проблема в том, что я не могу установить соединение с базой данныхв этих классах.
$pdo = new PDO("mysql:host=ipofdatabase;dbname=nameofdatabase", "username", "password", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
class Users {
public function usersList() {
$db_users = $pdo->query("SELECT id, username, mail FROM users");
$users = array();
foreach ($db_users as $u) {
$users[] = array(
'id' => $u['id'],
'username' => $u['username'],
'mail' => $u['mail']
);
}
}
public function getUserById($id) {
return new User($id);
}
}
Я хочу, чтобы $Users->usersList()
выводил массив со всеми данными, но вместо этого я получаю ошибку, что переменная $ pdo в строке 3 не определена.
Примечание: неопределенная переменная: pdo в C: \ apache \ docs \ Users.php в строке 6
Должен ли я устанавливать соединение с базой данных в каждом отдельном классе?Не станет ли это ударом по производительности?