【发布时间】:2014-03-13 09:48:13
【问题描述】:
我确定这很明显,但我看不出下面的代码有什么问题:
$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
}
}
}
错误消息是“Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in {filename}”,引用的行是 $ objQuery->execute()
我已确认已填充 $arrResult['nCompanyID'] - 我看不到什么?
谢谢
【问题讨论】:
-
先用空格分隔
=和col/token:nCompanyID = :nCompanyID,然后你可以试试binValue而不是php.net/manual/en/pdostatement.bindvalue.php -
感谢 Royal BG - 但我已经尝试了这两个建议 - 没有任何变化。