我有一个问题:
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,它仍然可以工作...
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中的"+“一起工作
发布于 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?
https://stackoverflow.com/questions/1632395
复制相似问题