gpt4 book ai didi

php - 同时使用两个查询。 PDO

转载 作者:行者123 更新时间:2023-11-29 04:45:58 25 4
gpt4 key购买 nike

好吧,我对 PDO 真的一无所知,我的 friend 只是让我在这里发布这个,因为他的英语不是很好。不管怎样,他是这样向我解释的:

所提供的代码应该获取几个值,保存它们,并且应该借助先前获取的值从另一个表中获取某些内容。根据我 friend 的说法,问题是它没有获得第二个值。

代码:

$user_email = $_SESSION['user_email'];
$query = $db->prepare("SELECT username,id,password FROM user WHERE email=:email");
$query->bindParam(':email', $user_email, PDO::PARAM_INT);
$query->execute();
$row = $query->fetch();
$user_username=$row['username'];
$user_group=$row['group'];
$query_group = $db->prepare("SELECT color,name FROM group WHERE id=:id");
$query_group->bindParam(':id', $user_group, PDO::PARAM_INT);
$query_group->execute();
$row = $query_group->fetch();
$group_color=$row['color'];
$group_name=$row['name'];

最佳答案

用作表名的单词group 需要用反引号括起来。 group 是保留关键字(GROUP BY 子句)。

SELECT 
color,
name
FROM `group`
WHERE id = :id

使用上面的方法就可以了。


您也可以使用 JOIN 子句来缩短整个代码。作为commented above by Prix ,代码应为:

$user_email = $_SESSION['user_email'];
$query = $db->prepare("SELECT
u.username,
u.id,
u.password,
g.color,
g.name
FROM user u
JOIN `group` g
ON g.id = u.id
WHERE u.email = :email");
// I think emails are supposed to be `PDO::PARAM_STR`
$query->bindParam(':email', $user_email, PDO::PARAM_INT);
$query->execute();
$row = $query->fetch();
$user_username = $row['username'];
$group_color = $row['color'];
$group_name = $row['name'];

关于php - 同时使用两个查询。 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18837482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com