我有一个简单的WHERE子句,它应该从MySQL表中获取一些行。
在这个WHERE子句中,我有一个AND条件,但它不输出任何东西......
$query = "
SELECT
*
FROM homework
WHERE
for_type_id = :group_id
AND for_type_id = :class_id
";
$query_params = array(
':group_id' => $_SESSION["user"]["group_id"],
':class_id' => $_SESSION["user"]["class_id"]
);
try
{
$stmt = $db->prepare($query);
$stmt->execute($query_params);
}
catch(PDOException $ex)
{
die($ex->getMessage());
}
$homework_data = $stmt->fetchAll();
我在SELECT部分中使用“for_type_id”两次的原因是因为数据库中的用户对于不同类型的作业有“group_id”和“class_id”,所以我想抓住所有的作业一个用户,使用“class_id”和“group_id”。
而且,它不会输出任何东西。没有错误,没有通知,没有。
有任何建议吗?
修改
修正了拼写错误
答案 0 :(得分:3)
您声明for_type_id用于抓取一个用户的所有作业。如果在查询中使用AND
,则返回的行必须都是group_id和class_id,这几乎肯定是不可能的。我想你可能需要使用OR
语句
$query = "
SELECT
*
FROM homework
WHERE
for_type_id = :group_id
OR for_type_id = :class_id
";
那应该返回group_id或class_id
的所有内容