Если бы это был CFQuery, у вас был бы один cfqueryparam для каждого значения:
where myTable.id = <cfqueryparam... value="#arguments.id#" />
or myTable.parentid = <cfqueryparam ... value="#arguments.id#" />
, поэтому я предполагаю, что вам нужно сделать то же самое в скрипте:
local.query.setSql("
SELECT id
FROM myTable
WHERE myTable.id = :id OR myTable.parentId = :pid ");
local.query.addParam(name="id", cfsqltype="CF_SQL_INTEGER",value=arguments.id,maxlength=10);
local.query.addParam(name="pid",cfsqltype="CF_SQL_INTEGER",value=arguments.id,maxlength=10);
Что касается вопроса «почему один addParam не может адресовать обе метки-заполнители», я предполагаю, что все сводится к тому, как ColdFusion анализирует запрос - потому что вы указываете две метки-метки, которые синтаксический анализатор, вероятно, ожидает найти две.