尝试将表单中的接收数据与数据库中的数据进行匹配。所以,如果我转储表格变量和表格,我可以看到有匹配,但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#"
同样的事情也适用于通过url传递的id。虽然有不同的表格。
答案 0 :(得分:6)
SQL要求字符串是单引号,而不是双引号。
SELECT FIRST_NAME, PASSWORD
FROM APP.USERS_TASK
WHERE FIRST_NAME = '#form.username#'
AND PASSWORD = '#form.password#'
但实际上,您应该使用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">