尝试在php / mysql中选择一个查询以获取日历中的“Upcoming Items”。我们将数据库中的日期存储为unix时间。这是我的查询现在的样子
SELECT *
FROM `calendar`
WHERE (`eventDate` > '$yesterday')
OR (FROM_UNIXTIME(eventDate, '%m') > '$current_month' AND `$yearly` = '1')
ORDER BY `eventDate`
LIMIT 4
这在'where子句'中给了我一个错误“Unknown column”'。我确定它与我使用括号(我以前从未在查询中使用过)和FROM_UNIXTIME命令有关。
有人能帮帮我,让我知道我是怎么搞砸的?
谢谢!
答案 0 :(得分:2)
这对我来说看起来很可疑:
`$yearly`
$ year的价值是多少?它是空的吗?当您使用反引号时,MySQL会将内容视为列的名称。
也许你的意思是创建一个字符串,在这种情况下你应该使用不同类型的引用:
'$yearly' = '1'
或许你打算引用专栏yearly
:
yearly = '1'
另一个提示是在插入PHP变量之后打印SQL查询,因为这有时可以更容易理解来自MySQL的错误消息。我想你的查询看起来像这样:
SELECT *
FROM `calendar`
WHERE (`eventDate` > '1295071200')
OR (FROM_UNIXTIME(eventDate, '%m') > '1' AND `` = '1')
ORDER BY `eventDate`
LIMIT 4
可疑部分在这里:
`` = '1'
答案 1 :(得分:2)
您是否有名为$ annual?的列,请尝试删除美元符号