PDO = & gt; «PDOException» с сообщением «SQLSTATE [HY093]: недопустимый номер параметра: параметр не был определен»

Я пытаюсь запустить подзапрос в моем 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);

0

Решение

Внутри вашего запроса вы написали:

:promotionId

Когда вы связываете параметры, вы пишете:

$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);

Вам нужно написать оба одинаковых способа: PromotionId! = Promo_id.

Таким образом, вы должны изменить эту строку:

p.id = :promotionId

К этому:

p.id = :promotion_id
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]