Я пытаюсь запустить подзапрос в моем 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! = Promo_id.
Таким образом, вы должны изменить эту строку:
p.id = :promotionId
К этому:
p.id = :promotion_id
Других решений пока нет …