使用PDO和之间

时间:2015-11-22 20:04:32

标签: php mysql pdo

好的,我有一个快速的问题。我使用PDO与MySQL数据库进行通信。使用BETWEEN和两个日期作为变量很容易:

$db->query("SELECT * FROM awesome WHERE date BETWEEN :start AND :end");

当我有一个日期和两列时,我认为不容易。无论我多么大声地说,这都行不通:

$db->query("SELECT * FROM awesome WHERE :one_date BETWEEN start_col AND end_col");

有没有一种方法可以使用BETWEEN而不会恢复到像......那样糟糕的东西?

$db->query("SELECT * FROM awesome WHERE '$one_date' BETWEEN start_col AND end_col");

或者我应该坚持在这种情况下不使用BETWEEN?

$db->query("SELECT * FROM awesome WHERE start_col<=:one_date1 AND end_col>=:one_date2")

谢谢!

1 个答案:

答案 0 :(得分:1)

BETWEEN仅适用于一列和两个值。

但你的最后一种方法应该有效。这至少是要走的路

$db->query("SELECT * FROM awesome" .
    " WHERE start_col <= :one_date1 AND end_col >= :one_date2"
);

使用命名参数时,您还应该能够使用相同的名称两次,只需要绑定一次。

<强>更新

好吧,只是测试它并为我工作,col1和col2之间的“WHERE'值'”。 (测试postgres与datetime,mysql与整数)