【发布时间】:2019-05-25 11:26:11
【问题描述】:
如何从类中的数据库中获取数据?
我的数据库中有一个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() 输出一个包含所有数据的数组,但我得到一个错误,即第 3 行中的变量 $pdo 未定义。
注意:未定义变量:第 6 行 C:\apache\docs\Users.php 中的 pdo
我应该在每个班级都建立数据库连接吗?这不会影响性能吗?
【问题讨论】:
-
你忘记将
$pdo作为参数传递给usersList(),如果这就是你的意思的话。