我确信我只是在做CFQUERYPARAM这个可怕的错误,但这就是我要做的事情:
<CFQUERY DATASOURCE="tr3" NAME="qryPartner">
SELECT *
FROM UsrMatchActualTR2
WHERE
session = #userSess#
AND
user_id = #userID#
AND
site=<cfqueryparam value="#userSite#" cfsqltype="CF_SQL_VARCHAR" maxlength="5">
</CFQUERY>
我收到了错误
执行数据库查询时出错。
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第3行的'AND site ='UTD''附近使用正确的语法
答案 0 :(得分:4)
我怀疑你的userID变量是空白的,导致查询结构中出现“漏洞”。您应该将CFQUERYPARAM用于所有参数,包括userID和userSess。
答案 1 :(得分:2)
首先,确保您的数据类型正确,站点列是varchar / string吗?另外,尝试对所有变量使用cfqueryparam。
<CFQUERY DATASOURCE="tr3" NAME="qryPartner">
SELECT * FROM UsrMatchActualTR2
WHERE session = <cfqueryparam value="#userSess#" cfsqltype="cf_sql_varchar" />
AND user_id = <cfqueryparam value="#userID#" cfsqltype="cf_sql_integer" />
AND site = <cfqueryparam value="#userSite#" cfsqltype="cf_sql_varchar" maxlength="5" />
</CFQUERY>
答案 2 :(得分:1)
尝试替换值参数
周围的“双引号”WHERE session = #userSess# AND user_id = #userID# AND site=<cfqueryparam value="#userSite#" cfsqltype="CF_SQL_VARCHAR" maxlength="5">
使用'单引号'
WHERE session = #userSess# AND user_id = #userID# AND site=<cfqueryparam value='#userSite#' cfsqltype="CF_SQL_VARCHAR" maxlength="5">
我见过CF分化。此外,您应该对所有变量使用<cfqueryparam>
。如果仍有问题,请尝试使用<cfdump> and <cfabort>