如何从类内的数据库中获取数据?
我有一个 users
我希望以面向对象的方式访问这些数据。这意味着我不想一直在我的代码中编写查询,相反,我想通过let say获取这些数据 $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()
输出一个包含所有数据的数组,但是我得到一个错误,即第3行中的变量$pdo未定义。
注意:第6行的c:\apache\docs\users.php中的未定义变量:pdo
我应该在每个类中建立数据库连接吗?这不是一个性能的打击吗?
2条答案
按热度按时间c9qzyr3d1#
我会这样做。创建一个模型来存储“用户”数据。然后userhandler可以加载并跟踪这些模型。
此外,对dh的引用可以传递给userhandler构造,以保留来自脚本另一部分的连接。
qyuhtwio2#
你需要创建一个
__construct
函数以到达pdo。你宣布$pdo
类外的变量。类可以访问其中的内容。