在使用PDO转换我的开发后,代码无法正常工作


Code does not work as supposed after converting my development using PDO

我正在将PHP/mySQL代码转换为PDO,但遇到了一些困难。下面我添加了我使用的确切代码和示例,以便更好地理解。我的目标是向DB中的name显示,它们的时间与输入时的时间相差2小时。

这是代码

从TIMESTAMPDIFF(小时,时间,:输入)<2

这是我的数据库

name                        date
3D Brave                    2012-07-21 17:00:00
Bol Bachchan                2012-07-21 18:00:00
A Royal Affair              2012-07-21 19:00:00
Not Suitable For Children   2012-07-21 23:00:00

如果$input2012-07-20 18:002012-07-20 20:00,那么我得到下面的所有结果,但它应该只显示那些有差异的2小时

3D Brave
Bol Bachchan
A Royal Affair
Not Suitable For Children

好吧,您正在查询列TIME的差异,但在表模式中,它被称为date

更正的查询:

SELECT *
  FROM events 
  WHERE ABS(TIMESTAMPDIFF( HOUR , `date`, "2012-07-21 18:00:00")) < 2;

我做了什么:

  • 将列名更改为date
  • 添加了ABS()功能(因此它现在既向前看又向后看)

该查询的结果