我有这个错误,而我执行这个SQL查询与PDO:
参数号无效:参数没有定义。
我看不出代码中需要修改的地方。
下面是我的代码:$req = $this->manager->dao->prepare('UPDATE pronostics
SET draw_lottery = :drawLottery, result_rank = :resultRank
WHERE draw_date = :drawDate AND id_user = :IdUser
AND lottery_name = :lotteryName');
$req->bindParam(':idUser', $idUser, PDO::PARAM_INT);
$req->bindParam(':drawLottery', $drawLottery, PDO::PARAM_STR);
$req->bindParam(':resultRank', $resultRank, PDO::PARAM_INT);
$req->bindParam(':drawDate', $drawDate, PDO::PARAM_STR);
$req->bindParam(':lotteryName', $lotteryName, PDO::PARAM_STR);
$req->execute();
你能告诉我少了哪个参数吗?
bindParam
字符串是大小写敏感的,因此:idUser
必须在您的查询和bindParam
参数中以相同的方式大写。
$req = $this->manager->dao->prepare('UPDATE pronostics
SET draw_lottery = :drawLottery, result_rank = :resultRank
WHERE draw_date = :drawDate AND id_user = :idUser AND lottery_name = :lotteryName');
$req->bindParam(':idUser', $idUser, PDO::PARAM_INT);
$req->bindParam(':drawLottery', $drawLottery, PDO::PARAM_STR);
$req->bindParam(':resultRank', $resultRank, PDO::PARAM_INT);
$req->bindParam(':drawDate', $drawDate, PDO::PARAM_STR);
$req->bindParam(':lotteryName', $lotteryName, PDO::PARAM_STR);
$req->execute();
在您的UPDATE
查询中,您说AND id_user = :IdUser
,而在定义参数时,名称不同,可以看到$req->bindParam(':idUser'
。我认为这是错误的。它应该与查询$req->bindParam(':IdUser'