PDO:无效的参数编号:混合了命名参数和位置参数-注释中有问号


PDO: Invalid parameter number: mixed named and positional parameters - question mark in comments

可能重复:
PDO无效参数编号-注释中的参数

今天我遇到了一个我以前从未见过的错误(在PDO中),但当你仔细想想时,它有点明显

我得到以下错误:Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters

我使用的查询类似于以下内容:

SELECT
    x
FROM
    y
WHERE
    -- CHECKING IF X = ? --
    x = :y
AND
    1 = 2

显然,我有更多的参数和更长的查询。

为什么它会给我这个错误?

解决方案是显而易见的:PDO无视注释,并看到?作为位置参数。正在删除?在您的评论中解决了这个问题。

在注释中使用未绑定参数也有类似的错误。