cfqueryparam
Проверяет тип данных параметра запроса и для СУБД, поддерживающих связываемые переменные, позволяет CFML использовать связываемые переменные в операторе SQL. Использование связываемых переменных повышает производительность при многократном выполнении оператора cfquery. Этот тег размещается внутри тега cfquery и встраивается в SQL-оператор запроса. Если указать необязательные параметры, этот тег выполняет проверку данных. ПРИМЕЧАНИЕ: В целях безопасности настоятельно рекомендуется использовать этот тег для любых пользовательских данных или динамических значений в запросе, чтобы предотвратить внедрение кода и подобные атаки.
<cfqueryparam>
cfqueryparam();
Справочник по атрибутам
value строка
cfsqltype строка
По умолчанию: CF_SQL_CHAR
CF_SQL_CHAR
cf_sql_ можно опустить. Сопоставление типов данных CFSQL с типами данных СУБД см. в [шпаргалке по CFSqlType](https://cfdocs.org/cfsqltype-cheatsheet). cf_sql_bigintcf_sql_bitcf_sql_charcf_sql_blobcf_sql_clobcf_sql_nclobcf_sql_datecf_sql_decimalcf_sql_doublecf_sql_floatcf_sql_idstampcf_sql_integercf_sql_longvarcharcf_sql_longnvarcharcf_sql_moneycf_sql_money4cf_sql_ncharcf_sql_nvarcharcf_sql_numericcf_sql_realcf_sql_refcursorcf_sql_smallintcf_sql_sqlxmlcf_sql_timecf_sql_timestampcf_sql_tinyintcf_sql_varcharbigintbitcharblobclobnclobdatedecimaldoublefloatidstampintegerlongvarcharlongnvarcharmoneymoney4ncharnvarcharnumericrealrefcursorsmallintsqlxmltimetimestamptinyintvarchar
maxlength число
scale число
По умолчанию: 0
0
CF_SQL_NUMERIC и CF_SQL_DECIMAL. null логическое значение
NULL. Да: атрибут value игнорируется, передается NULL. Нет: передается атрибут value. list логическое значение
separator строка
Совместимость
ColdFusion:
cfsqltype, в предыдущих версиях недопустимые типы обрабатывались как varchar — см. CF-4198194. Lucee:
int и cf_sql_int для целых чисел Railo:
int и cf_sql_int для целых чисел BoxLang:
<bx:queryparam> в BoxLang Ссылки дополнительная информация о cfqueryparam
- Осваиваем cfqueryparam — руководство по всем тонкостям использования cfqueryparam.
Примеры Примеры кода с тегом cfqueryparam
Показывает, как использовать тег cfqueryparam внутри cfquery.
<cfquery name="news">
SELECT id,title,story
FROM news
WHERE id = <cfqueryparam value="#url.id#" cfsqltype="cf_sql_integer">
</cfquery> Предполагается, что url.idList — это разделенный запятыми список целых чисел, например: 1,2,3
<cfquery name="news">
SELECT id,title,story
FROM news
WHERE id IN (<cfqueryparam value="#url.idList#" cfsqltype="cf_sql_integer" list="true">)
</cfquery> Простой пример использования выражения для управления тем, передается ли значение null в queryparam
<cfquery name="test">
INSERT into test ( key, value )
VALUES(
<cfqueyparam value="#key#" cfsqltype="cf_sql_varchar" null="#isNumeric(Key) EQ false#">
<cfqueryparam value="#value#" cfsqltype="cf_sql_varchar" null="#value EQ ''#">
)
</cfquery> CF 11+ Синтаксис скрипта с использованием queryExecute и записи в виде структуры
exampleData = queryNew("id,title","integer,varchar",[{"id":1,"title":"Dewey defeats Truman"},{"id":2,"title":"Man walks on Moon"}]);
result = queryExecute(
"SELECT title FROM exampleData WHERE id = :id",
{ id = 2 },
{ dbtype="query" }
);
writeOutput( result.title[1] ); Ожидаемый результат: Человек ходит по Луне
CF 11+ Синтаксис скрипта с использованием queryExecute и записи в виде структуры для нескольких параметров
exampleData = queryNew("id,title","integer,varchar",[{"id":1,"title":"Dewey defeats Truman"},{"id":2,"title":"Man walks on Moon"}]);
result = queryExecute(
"SELECT * FROM exampleData WHERE id = :id AND title = :title",
{
title={value="Man walks on Moon", cfsqltype="cf_sql_varchar"}, id={value=2, cfsqltype="cf_sql_integer"}
},
{ dbtype="query" }
);
writeOutput(result.title[1]); Ожидаемый результат: Человек ходит по Луне
CF 11+ Синтаксис скрипта с использованием queryExecute и полной записи массива
exampleData = queryNew("id,title","integer,varchar",[{"id":1,"title":"Dewey defeats Truman"},{"id":2,"title":"Man walks on Moon"}]);
result = queryExecute(
"SELECT title FROM exampleData WHERE id = ?",
[
{ value=2, cfsqltype="cf_sql_varchar" }
],
{ dbtype="query" }
);
writeOutput( result.title[1] ); Ожидаемый результат: Человек ходит по Луне
CF 11+ Синтаксис скрипта с использованием queryExecute и сокращенной записи массива
exampleData = queryNew("id,title","integer,varchar",[{"id":1,"title":"Dewey defeats Truman"},{"id":2,"title":"Man walks on Moon"}]);
result = queryExecute(
"SELECT title FROM exampleData WHERE id = ?",
[ 2 ],
{ dbtype="query" }
);
writeOutput( result.title[1] ); Ожидаемый результат: Человек ходит по Луне
© 2012–present Foundeo, Inc. and the CFDocs contributors.
Licensed under the MIT License.
ColdFusion is a trademark of Adobe Systems Incorporated.
https://cfdocs.org/cfqueryparam