我有一个简单的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"。
再一次,它没有输出任何东西。没有错误,没有通知,什么都没有。
有什么建议吗?
编辑
修正错别字
您声明该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