从查询中获取数据。 PDO

时间:2013-09-17 03:47:52

标签: php mysql pdo

好吧,我的问题是这段代码什么也没有返回,至少它什么都不打印。 唯一可行的是$ 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)。

这就是表格内的所有内容。

1 个答案:

答案 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用于列。