我在使用PDO执行此SQL查询时遇到此错误:
参数号无效:未定义参数。
我无法在代码中看到需要更改的内容。
这是我的代码:
$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();
你能告诉我哪个参数丢失了吗?
答案 0 :(得分:2)
: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();
参数中大写。
{{1}}
答案 1 :(得分:0)
在UPDATE
查询中,您说AND id_user = :IdUser
,而在定义参数时名称不同,可以看作$req->bindParam(':idUser'
。我相信这是错误的。它应与查询$req->bindParam(':IdUser'