我有一个查询:
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中是一个INTEGER,但是上面的查询返回一个不是来自表的Id,甚至不是一个INTEGER,它似乎是一个随机的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 中的“+”一起工作