Можно ли повторно связать параметры SQL, используя результат из cfquery? - PullRequest
4 голосов
/ 03 мая 2010

Когда я запускаю следующий код:

<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.

1 Ответ

1 голос
/ 03 мая 2010

Два подхода, в зависимости от того, что вы пытаетесь сделать:

Бен Надель: объединение параметров отладки SQL ColdFusion и параметров запросов с Javascript - полезно, если все, что вам нужно, это скопировать и вставить

Улучшенный шаблон отладки - полезно, если вы хотите выполнить обратный инжиниринг кода, чтобы реконструировать ваш запрос в коде и сделать некоторые записи и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...