gpt4 book ai didi

mysql - CFQUERYPARAM 在 URL 中与 "+"中断

转载 作者:行者123 更新时间:2023-11-30 21:23:20 25 4
gpt4 key购买 nike

我有一个问题:

  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在Database中都是VARCHARS,但是在URL中却包含“+”,egField1=text+moretext

如果我从 URL 字符串中删除“+”,它就可以正常工作!我知道“+”是一个空格的表示,如果我真的再次在 URL 中键入一个空格,它就可以正常工作。只有在出现“+”时才会中断。

我做错了什么?或者我该怎么做才能使 CFQUERYPARAM 使用 URL 中的“+”

最佳答案

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

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


如果一切正常,那么我猜当 where 子句无法匹配时,随机 ID 的奇怪行为可能与默认数据库值有关 - 尝试 SELECT id FROM table WHERE 1=0 并查看是否你得到随机 ID 了吗?

关于mysql - CFQUERYPARAM 在 URL 中与 "+"中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1632395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com