好的,所以我的问题是这段代码什么都不返回,至少它不打印任何东西。 唯一似乎有效的是 $user_email 打印用户电子邮件。
代码:
$user_email = $_SESSION['user_email'];
$query = $db->prepare("SELECT u.username, g.color, g.name FROM `user` u JOIN `group` g ON g.id = u.id WHERE u.email = :email");
$query->bindParam(':email', $user_email, PDO::PARAM_STR);
$query->execute();
$row = $query->fetch();
$user_username = $row['username'];
$group_color = $row['color'];
$group_name = $row['name'];
print "Values: ".$row['username']." | ".$row['name']." <br>";
“用户”表包含 7 个不同的键:
id (bigint, primary key, auto_increment), group (int), email (varchar), password (varchar), username(varchar), name (varchar), verified (int).
“组”表包含 3 个不同的键:
id(bigint,主键,auto_increment),颜色(varchar),名称(varchar)。
这就是表格中的全部内容。
最佳答案
在我看来查询应该是
SELECT u.username, g.color, g.name
FROM `user` u
INNER JOIN `group` g
ON u.`group` = g.id
WHERE u.email = :email
此外,由于 user.group
似乎是 group.id
的外键,它也应该是 bigint
,而不是 int
(外键应该与其目标主键的类型相同)。
还有...
group
对于表和列来说都是一个糟糕的名字。尽量避开 reserved words .我会为表使用 user_group
,为列使用 group_id
。
关于php - 没有从查询中获取数据。 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18841009/