mysql - 无法弄清楚为什么我的一些 SQL 代码不起作用

标签 mysql database coldfusion cfml

我正在使用 ColdFusion 构建更新查询,但无法弄清楚为什么这段代码不起作用?请注意,它直接在 mysql 服务器内工作,因此 SQL 必须有效,只是在标签内调用时不会更新我的数据。

我正在为这个问题而绞尽脑汁,很想得到有想法的人的帮助。我的感觉是 ColdFusion 在到达数据库之前弄乱了格式。感谢大家抽出宝贵的时间。

<cfquery name="qry" datasource="uf">
UPDATE users set expiry = (SELECT DATE_ADD("#user_qry.expiry#", INTERVAL 10 DAY)), active = 1 where user_id = #user_id#
</cfquery>

最佳答案

您正在混合 CF 和 MySQL 日期逻辑。我只会坚持一个。使用SELECT dateAdd("d",10,CreateODBCDate(user_qry.expiry))... 。这样,使用 CF 的 dateAdd(),您可以向 CF 内部的 CF 日期对象添加 10 天,而不是尝试让 MySQL 向 CF 生成的日期字符串添加 10 天。

此外,您还需要在 WHERE 语句中使用 cfqueryparam。确保清理您的输入。

关于mysql - 无法弄清楚为什么我的一些 SQL 代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086625/

相关文章:

java - 数据库表架构建议

php - 无法让 mysqli_result::$fetch_all 工作

c# - c# 从数据库中删除

sql - 将值列表与表进行比较

MySQL 竞争条件

mysql - 跨表关联多行的最佳方法

mysql - NodeJS - For 循环 - 等待回调继续

web-services - Coldfusion Web 服务无法看到组件

arrays - 基于模式匹配的冷融合计数

windows - ubuntu 上的 cfdirectory 在 windows 上访问 smbfs 的奇怪问题