首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFQUERYPARAM中的错误

CFQUERYPARAM中的错误
EN

Stack Overflow用户
提问于 2012-02-06 20:11:47
回答 3查看 317关注 0票数 0

我肯定我只是在用CFQUERYPARAM做这个可怕的错误,但我想做的是:

代码语言:javascript
复制
<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’的正确语法

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-06 20:33:12

我怀疑您的userID变量是空白的,这会导致查询结构出现“漏洞”。您确实应该对所有参数使用CFQUERYPARAM,包括userID和userSess。

票数 4
EN

Stack Overflow用户

发布于 2012-02-06 20:34:41

首先,确保数据类型是正确的,站点列是varchar / string吗?此外,尝试对所有变量使用cfqueryparam。

代码语言:javascript
复制
<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
EN

Stack Overflow用户

发布于 2012-02-06 20:35:06

尝试替换值param周围的“双引号”。

代码语言:javascript
复制
WHERE session = #userSess# AND user_id = #userID# AND site=<cfqueryparam  value="#userSite#"  cfsqltype="CF_SQL_VARCHAR" maxlength="5">

用单引号

代码语言:javascript
复制
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>中存储的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9166585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档