Php PDO=>';PDO异常';带有消息';SQLSTATE[HY093]:参数编号无效:未定义参数';
我试图在我的PDO中运行一个子查询,但PDO没有它。有什么建议吗 未捕获异常“PDOException”,消息为“SQLSTATE[HY093]:参数编号无效:未定义参数”Php PDO=>';PDO异常';带有消息';SQLSTATE[HY093]:参数编号无效:未定义参数';,php,mysql,pdo,subquery,Php,Mysql,Pdo,Subquery,我试图在我的PDO中运行一个子查询,但PDO没有它。有什么建议吗 未捕获异常“PDOException”,消息为“SQLSTATE[HY093]:参数编号无效:未定义参数” $userId = 1; $promotionId = 1; $sql = " SELECT *, ( SELECT COUNT(*) FROM promoti
$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
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
你需要用同样的方式来写,promotionId!=促销标识
所以你应该改变这一行:
p.id = :promotionId
为此:
p.id = :promotion_id
您在查询中写道:
:promotionId
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
绑定参数时,您编写了:
:promotionId
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
你需要用同样的方式来写,promotionId!=促销标识
所以你应该改变这一行:
p.id = :promotionId
为此:
p.id = :promotion_id
您在查询中写道:
:promotionId
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
绑定参数时,您编写了:
:promotionId
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
你需要用同样的方式来写,promotionId!=促销标识
所以你应该改变这一行:
p.id = :promotionId
为此:
p.id = :promotion_id
您在查询中写道:
:promotionId
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
绑定参数时,您编写了:
:promotionId
$getPromotions->bindValue(':promotion_id', $promotionId, PDO::PARAM_STR);
你需要用同样的方式来写,promotionId!=促销标识
所以你应该改变这一行:
p.id = :promotionId
为此:
p.id = :promotion_id
当我在PhpMyAdmin中运行此查询时,它会工作,但PDO不会运行它。我认为您没有检查错误。现在是谁干的?计算机是如此完美,不是吗?只是PDO的新手。这是一个愚蠢的错误当我在PhpMyAdmin中运行此查询时,它可以工作,但PDO不会运行它。我认为您没有检查错误。现在是谁干的?计算机是如此完美,不是吗?只是PDO的新手。这是一个愚蠢的错误当我在PhpMyAdmin中运行此查询时,它可以工作,但PDO不会运行它。我认为您没有检查错误。现在是谁干的?计算机是如此完美,不是吗?只是PDO的新手。这是一个愚蠢的错误当我在PhpMyAdmin中运行此查询时,它可以工作,但PDO不会运行它。我认为您没有检查错误。现在是谁干的?计算机是如此完美,不是吗?只是PDO的新手。这是一个愚蠢的错误