好吧,我的问题是这段代码什么也没有返回,至少它什么都不打印。 唯一可行的是$ 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>";
“user”表包含7个不同的键:
id(bigint,主键,auto_increment),group(int),email(varchar),password(varchar),username(varchar),name(varchar),verified(int)。
“group”表包含3个不同的键:
id(bigint,主键,auto_increment),color(varchar),name(varchar)。
这就是表格内的所有内容。
答案 0 :(得分:1)
在我看来,查询应该是
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
用于列。