gpt4 book ai didi

mysql - 使用 LIKE 语句构建冷聚变查询问题

转载 作者:行者123 更新时间:2023-11-29 04:13:38 24 4
gpt4 key购买 nike

我正在尝试用这一行构建一个动态 sql 语句

<cfset SQL = "SELECT url, MONTH(event_date) AS months, YEAR(event_date) AS year, event_date, title from events where title LIKE '%#form.event_name#%' ">

<cfquery name="results" >
#SQL#
</cfquery>

like 子句似乎有问题。有任何想法吗?我需要转义 % 吗?

谢谢

最佳答案

在 CFQUERY 中,ColdFusion 将替换 #SQL# 中的单引号自动使用双引号。

所以理论上你必须这样写你的查询:

<cfquery name="results" >
#PreserveSingleQuotes(SQL)#
</cfquery>

但是......接受表单变量并在查询中直接使用它而不进行进一步验证是非常危险的。对我来说似乎是 SQL 注入(inject)攻击的邀请。

我宁愿使用 <cfqueryparam>像这样:

<cfquery name="results" >
SELECT url, MONTH(event_date) AS months, YEAR(event_date) AS year, event_date, title
from events
where title LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%#form.event_name#%">
</cfquery>

关于mysql - 使用 LIKE 语句构建冷聚变查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3745679/

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