我肯定我只是在用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行上使用near 'AND site=‘UTD’的正确语法
发布于 2012-02-06 20:33:12
我怀疑您的userID变量是空白的,这会导致查询结构出现“漏洞”。您确实应该对所有参数使用CFQUERYPARAM,包括userID和userSess。
发布于 2012-02-06 20:34:41
首先,确保数据类型是正确的,站点列是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>发布于 2012-02-06 20:35:06
尝试替换值param周围的“双引号”。
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>。如果仍然有问题,请尝试使用userSess、userID和site来计算变量<cfdump> and <cfabort>中存储的内容。
https://stackoverflow.com/questions/9166585
复制相似问题