coldfusion sql查询检查用户

Kir*_*mov 1 sql coldfusion

尝试将表单中的接收数据与db中的数据进行匹配.所以,如果我转储表格变量和表格,我可以看到有匹配,但coldfusion给了我这个......

列'Kirill'要么不在FROM列表中的任何表中,要么出现在连接规范中,并且不在连接规范的范围内,或者出现在HAVING子句中,并且不在GROUP BY列表中.如果这是CREATE或ALTER TABLE语句,则"Kirill"不是目标表中的列.

查询:

SELECT FIRST_NAME, PASSWORD 
from APP.USERS_TASK
where FIRST_NAME = "#form.username#"
  and PASSWORD = "#form.password#"
Run Code Online (Sandbox Code Playgroud)

同样的事情也可以通过url传递的id工作得很好.虽然有不同的表.

Joe*_*e C 6

SQL要求字符串是单引号,而不是双引号.

SELECT FIRST_NAME, PASSWORD 
FROM APP.USERS_TASK
WHERE FIRST_NAME = '#form.username#'
AND PASSWORD = '#form.password#'
Run Code Online (Sandbox Code Playgroud)

但实际上,您应该使用cfqueryparam来清理用户输入并防止SQL注入.这也将处理任何数据类型和所需的报价.

SELECT FIRST_NAME, PASSWORD 
FROM APP.USERS_TASK
WHERE FIRST_NAME = <cfqueryparam value="#form.username#" cfsqltype="cf_sql_varchar">
AND PASSWORD = <cfqueryparam value="#form.password#" cfsqltype="cf_sql_varchar">
Run Code Online (Sandbox Code Playgroud)

  • `cfsqltype`属性不是必需的,但建议使用它,因为它保护您的数据库并确保为您正确地将值转换为字符串或数字. (2认同)