尝试将表单中的接收数据与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工作得很好.虽然有不同的表.
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)