我的数据库 users 和 users_roles 中有 2 个表,如下所示:
用户:
id | username | user_role_id
----------------------------
1 | User1 | 1
2 | User2 | 1
3 | User3 | 2
用户角色:
id | role
----------
1 | admin
2 | user
所以,在 Java 中,我只需要在 Hibernate 映射中编写一个属性 lazy="false"来获取所有 users
的列表,自动包含 users_roles
对象,每个专门针对 users
表中的每条记录,但在 PHP 中?我刚刚在 PDO 中遇到一个名为 FETCH_ASSOC
的选项,但我不明白它是如何工作的。
我获取所有用户列表的方法如下所示:
public function getAll() {
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$sql = $conn->prepare("SELECT * FROM users ORDER BY id DESC");
$sql->execute();
$list = $sql->fetchAll(PDO::FETCH_OBJ);
$conn = null;
return $list;
}
以及 Smarty 模板中的一段代码:
{foreach from=$usersList item=item}
{$item->username}
{$item->users_roles.role}
{/foreach}
你介意帮我一点点让我走上正确的道路吗?
最佳答案
FETCH_ASSOC 选项将行提取到关联数组中,例如:
Array
(
[0] => Array
(
[id] => 1
[name] => name1
)
[1] => Array
(
[id] => 2
[name] => name2
)
)
如果想top获取users_roles表中有相应记录的所有用户,可以使用这个请求:
SELECT
*
FROM
users
INNER JOIN
users_roles
ON
users_roles.id=users.user_role_id
ORDER BY
users.id DESC
关于php - 使用 PHP 从 MySQL 中获取所有记录作为惰性 ="false",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18011697/