Php PDO+;注释+;?=错误‼;

Php PDO+;注释+;?=错误‼;,php,mysql,pdo,comments,Php,Mysql,Pdo,Comments,(旁注:阻挡!问题中的标题并不能阻止像我这样的聪明人,而是用U+203C双感叹号:p) 经过一轮快速调试,我发现: $query = <<<END SELECT `column1`, `column2`, SOME_FUNCTION(`column3`) -- process in PHP instead? FROM `tablename` WHERE `condition` BETWEEN ? AND ? END; $s

(旁注:阻挡!问题中的标题并不能阻止像我这样的聪明人,而是用U+203C双感叹号:p)

经过一轮快速调试,我发现:

$query = <<<END
    SELECT
        `column1`, `column2`,
        SOME_FUNCTION(`column3`) -- process in PHP instead?
    FROM `tablename`
    WHERE `condition` BETWEEN ? AND ?
END;
$stmt = $pdo->prepare($query);
$stmt->execute(array(1,10));

$query=您可以有注释,但不能有带有
的注释,也不能有解释为占位符的其他内容,如
:x


PDO不理解SQL语法。它将所有文本视为需要检查占位符的内容。当模拟准备好的语句时,将会发生这种情况。

啊,我明白了,这是准备好的语句模拟的结果。可以mysql驱动程序是否支持不带模拟的预处理语句?看起来像PDO。我刚刚尝试禁用了
ATTR\u EMULATE\u PREPARES
,它完美地执行了我的预处理语句-更好的是,它不再有我的问题注释问题。