簡體   English   中英

使用命名參數時,為什么會看到“無效的參數編號”錯誤?

[英]Why am I seeing an “invalid parameter number” error when using named parameters?

使用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();

您能告訴我缺少哪個參數嗎?

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'提到的相同$req->bindParam(':IdUser'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM