首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFQUERYPARAM在URL中使用"+“断开

CFQUERYPARAM在URL中使用"+“断开
EN

Stack Overflow用户
提问于 2009-10-28 01:28:39
回答 1查看 159关注 0票数 1

我有一个问题:

代码语言:javascript
复制
  SELECT id FROM table WHERE field1=<cfqueryparam value="#URL.field1#" 
    cfsqltype="cf_sql_varchar">
  AND field2=<cfqueryparam value="#URL.field2#" 
    cfsqltype="cf_sql_varchar">
  AND field3=<cfqueryparam value="#URL.field3#" 
    cfsqltype="cf_sql_varchar">;

Id在MySQL中是一个整数,但是上面的查询返回一个不是来自表的Id,甚至不是一个整数,它似乎是一个随机的BIGINT!如果我删除CFQUERYPARAM,它仍然可以工作...

代码语言:javascript
复制
SELECT id FROM table WHERE field1='#URL.field1#' 
        AND field2='#URL.field2#'
        AND field3='#URL.field3#';

Field1、Field2和Field3在数据库中都是VARCHARS,但是在URL中它们包含"+",例如Field1=text+moretext

如果我从URL字符串中去掉"+“,它工作得很好!我知道"+“是一个空格的表示,如果我再次在URL中输入一个空格,它就可以正常工作。只有当有一个"+“表示时,它才会中断。

我做错了什么?或者如何使CFQUERYPARAM与URL中的"+“一起工作

EN

回答 1

Stack Overflow用户

发布于 2009-10-28 02:05:07

url中的Field=text+moretext将作为text moretext传递给Url.Field1,因为url中的空格可以编码为加号。

如果您希望在最终变量中使用实际的+符号,请使用%2B,或者将UrlEncodedFormat应用于原始链接。

如果这一切都有效,那么我猜随机ID的奇怪行为可能与where子句匹配失败时的缺省数据库值有关-尝试SELECT id FROM table WHERE 1=0,看看是否获得了随机ID?

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

https://stackoverflow.com/questions/1632395

复制
相关文章

相似问题

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