cfquery
Передаёт запросы или инструкции SQL источнику данных. Рекомендуется использовать тег cfqueryparam внутри каждого тега cfquery, чтобы защитить базы данных от несанкционированного доступа
<cfquery>SQL</cfquery>
queryExecute(sql, params, options);
Справочник атрибутов
name string
datasource string
timezone string
dbtype string
query: для запроса к существующему объекту запроса (то есть Query of Queries); hql: для запроса к ORM. ПРИМЕЧАНИЕ: поддерживаемый синтаксис SQL зависит от этого значения. queryhql
username string
password string
maxrows numeric
По умолчанию: -1
-1
blockfactor numeric
timeout numeric
cachedafter date
cachedwithin numeric
debug boolean
По умолчанию: false
false
truefalse
result string
ormoptions struct
cacheID string
cacheRegion string
clientInfo struct
fetchClientInfo boolean
По умолчанию: false
false
lazy boolean
По умолчанию: false
false
psq boolean
По умолчанию: false
false
returntype string
По умолчанию: query
query
columnkey string
Совместимость
BoxLang:
<bx:query> в BoxLang Ссылки дополнительная информация о cfquery
- Руководство пользователя Adobe по Query of Queries — в документации Adobe можно узнать, какие инструкции SQL поддерживаются.
Примеры Примеры кода с использованием тега cfquery
Показывает, как использовать тег cfqueryparam внутри cfquery.
<cfquery name="news">
SELECT id,title,story
FROM news
WHERE id = <cfqueryparam value="#url.id#" cfsqltype="cf_sql_integer">
</cfquery> CF 11+ См. также раздел «Теги, реализованные как компоненты», где описан другой способ использования
myQuery = queryExecute(
"SELECT myCol1, myCol2 FROM myTable
WHERE myCol1 = :myid
ORDER BY myCol1 ASC ",
{myid: 5},
{datasource = "myDSN"}
);
writeDump(myQuery); Сначала с нуля создаётся фиктивный запрос с помощью queryNew, а затем выполняется сортировка. Для выполнения Query of Query указывается dbtype="query", а в инструкции FROM используется имя переменной объекта запроса.
<!--- create a dummy query using queryNew --->
<cfset news = queryNew("id,title", "integer,varchar")>
<cfset queryAddRow(news)>
<cfset querySetCell(news, "id", "1")>
<cfset querySetCell(news, "title", "Dewey defeats Truman")>
<cfset queryAddRow(news)>
<cfset querySetCell(news, "id", "2")>
<cfset querySetCell(news, "title", "Men walk on Moon")>
<cfset writeDump(news)>
<!--- run QofQ (query of query) --->
<cfquery name="sortedNews" dbtype="query">
SELECT id, title FROM news
ORDER BY title DESC
</cfquery>
<cfset writeDump(sortedNews)> Этот синтаксис был реализован в компонентах на основе скриптов в CF 9 и 10. Устарел в ColdFusion 2018. Удалён в ColdFusion 2025. В CF11 его заменил queryExecute().
queryObj = new Query(
name="qryDemo",
datasource="mydatasourcename",
sql = "SELECT col1, col2
FROM myTable
WHERE id=:id"
);
queryObj.addParam(name="id",value=arguments.id, cfsqltype="cf_sql_integer");
resultset=queryObj.execute().getResult(); Lucee 5+ Возвращает объект запроса, преобразованный в массив структур.
<!--- create a dummy query using queryNew --->
<cfset users = queryNew("firstname", "varchar", [{"firstname":"Han"}])>
<cfset writeDump(users)>
<!--- run QofQ (query of query) --->
<cfquery name="subUsers" dbtype="query" returntype="array">
SELECT * FROM users
</cfquery>
<cfset writeDump(subUsers)> Ожидаемый результат: [ { firstname: "Han" } ]
Lucee 5+ Возвращает объект запроса, преобразованный в структуру структур. (Ключ структуры задаётся параметром "columnkey".)
<!--- create a dummy query using queryNew --->
<cfset users = queryNew("id, firstname", "integer, varchar", [{"id":1, "firstname":"Han"}])>
<cfset writeDump(users)>
<!--- run QofQ (query of query) --->
<cfquery name="subUsers" dbtype="query" returntype="struct" columnkey="id">
SELECT * FROM users
</cfquery>
<cfset writeDump(subUsers)> Ожидаемый результат: { 1: { id: 1, firstname: "Han" } }
Вставляет новую запись в таблицу с именем myTable. Столбец "ID" — это столбец первичного ключа с автоинкрементом.
<!--- insert the new record --->
<cfquery datasource="myDatasource" result="result">
INSERT INTO myTable ( name, email ) VALUES ( 'Joe', 'joe@domain.com' )
</cfquery>
<!--- output the new primary key --->
<cfdump var="#result.generatedKey#" />
© 2012–present Foundeo, Inc. and the CFDocs contributors.
Licensed under the MIT License.
ColdFusion is a trademark of Adobe Systems Incorporated.
https://cfdocs.org/cfquery