我正试图在我的PDO中运行一个子查询,但PDO没有。有什么建议吗?
未捕获异常"PDOException",消息为"SQLSTATE[HY093]:无效参数编号:未定义参数"
$userId = 1;
$promotionId = 1;
$sql = "
SELECT
*,
(
SELECT
COUNT(*)
FROM
promotion_user as spu
WHERE
spu.promotion_id = p.id AND
spu.user_id = :user_id
) as num_uses
FROM
promotion as p
WHERE
p.id = :promotionId
";
//$db is the PDO connection
$getPromotions = $db->prepare($sql);
$getPromotions->bindValue(':user_id', $userId, PDO::PARAM_STR);
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
$getPromotions->execute();
$promotions = $getPromotions->fetchAll(PDO::FETCH_ASSOC);
在您的查询中,您写道:
:promotionId
当你在绑定参数时,你写道:
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
您需要以相同的方式编写,promotionId!=promotion_id。
所以你应该更改这一行:
p.id = :promotionId
对此:
p.id = :promotion_id