PHP PDO参数数无效:绑定变量数与令牌数不匹配


PHP PDO Invalid parameter number: number of bound variables does not match number of tokens

我相信这很明显,但是我不能发现下面的代码有什么问题:

$sSQl="SELECT nDocumentID, sFilename, sDescription 
    FROM tCompanyDocuments 
    WHERE nCompanyID=:nCompanyID AND sDocumentType='I' ORDER BY nDisplayOrder";
$objQuery=$objConn->prepare($sSQL);
$objQuery->bindParam(':nCompanyID', $arrResult['nCompanyID']);
if ($objQuery->execute()) {
    $arrTemp=$objQuery->fetchAll(PDO::FETCH_ASSOC);
    if (sizeof($arrTemp)>0) {
        foreach ($arrTemp as $objRow) {
            //do stuff
        }
    }
}

错误信息是"致命错误:未捕获的异常'PDOException'与消息'SQLSTATE[HY093]:无效参数数:绑定变量的数量不匹配令牌'在{filename}",引用的行是$objQuery->execute()

我已经确认$arrResult['nCompanyID']已被填充-我看不到什么?

谢谢

如何验证$arrResult['nCompanyID'] ?查询似乎运行良好,并返回结果。我猜是$arrResult['nCompanyID']是空的

试试这个:

$sSQl="SELECT nDocumentID, sFilename, sDescription 
    FROM tCompanyDocuments 
    WHERE nCompanyID = :nCompanyID AND sDocumentType='I' ORDER BY nDisplayOrder";

如果nCompanyID是整数类型,则:

 $objQuery->bindParam(':nCompanyID', $arrResult['nCompanyID'], PDO::PARAM_INT);

 $objQuery->bindParam(':nCompanyID', $arrResult['nCompanyID'], PDO::PARAM_STR,Length of string);

看到细节