Когда я запускаю следующий код:
<cfquery name="someQuery" result="queryResult" datasource="wetakepictures">
SELECT id
FROM events
WHERE category_id = <cfqueryparam value="1" cfsqltype="cf_sql_integer">
OR title like <cfqueryparam value="%test%" cfsqltype="cf_sql_varchar">
</cfquery>
<cfoutput>
#queryResult.sql# <br />
#ArrayToList(queryResult.sqlparameters)#
</cfoutput>
Это выводит:
SELECT id FROM events WHERE category_id = ? OR title like ?
1,%test%
Мне нужна текущая строка "SELECT id FROM events WHERE category_id = 1 ИЛИ заголовок типа"% test% "".
Есть ли способ привязать параметры к sql?
---- редактировать ----
Причиной этого является устранение дублирующегося SQL при разбивке на страницы результатов. Я хотел бы сделать что-то вроде этого:
<cftransaction>
<cfquery name='getCount' result='queryResult'>
SELECT count(*)
... conditions that are guarded by <cfif> ...
</cfquery>
<cfquery name='getLimitedRecords'>
#replace(queryResult.sql, 'count(*)', 'id')#
LIMIT ... based on pagination ...
</cfquery>
</cftransaction>
Примечание: я посмотрел на этот вопрос и решил использовать два запроса с MySQL.