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

Php PDO:无效参数编号:混合命名参数和位置参数-注释中有问号,php,sql,pdo,Php,Sql,Pdo,可能重复: 今天我遇到了一个我以前从未见过的bug(在PDO中),但是当你想到它的时候,它是很明显的 我得到了以下错误: 警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[HY093]:无效参数编号:混合命名参数和位置参数 我使用的查询类似于以下内容: SELECT x FROM y WHERE -- CHECKING IF X = ? -- x = :y AND 1 = 2 显然,我有

可能重复:

今天我遇到了一个我以前从未见过的bug(在PDO中),但是当你想到它的时候,它是很明显的

我得到了以下错误:
警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[HY093]:无效参数编号:混合命名参数和位置参数

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

SELECT
    x
FROM
    y
WHERE
    -- CHECKING IF X = ? --
    x = :y
AND
    1 = 2
显然,我有更多的参数和更长的查询


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

解决方案是显而易见的:PDO会忽略注释本身,并看到错误?作为位置参数。移除?在你的评论中解决了这个问题


我故意将这两个问题和答案分开。潜在的bug(或特性,无论什么)是相同的,但它导致的错误是不同的。我认为这对搜索结果更好。