Drupal 7 - 使用BETWEEN查询无效

Ray*_*Fun 4 mysql drupal-7 drupal-modules

我在Drupal 7中有一个查询正在搜索自定义表:

$query5 = "SELECT COUNT(reservation_id) as rcount5, reservation_id FROM {reservations} WHERE resource_id = :resource_id AND reservation_date = :reservation_date AND start_time BETWEEN :start_time AND :end_time";
$result5 = db_query($query5, array(':resource_id' => $resource_id, ':reservation_date' => $reservation_date, ':start_time' => $start_time, ':end_time' => $end_time));
Run Code Online (Sandbox Code Playgroud)

查询无效,因为我认为它没有正确识别BETWEEN函数并返回end_time,因为它存在.有没有办法显示drupal或db api这是BETWEEN语句?谢谢.

Cli*_*ive 8

您可以使用Drupal 7数据库API并添加如下BETWEEN参数:

$query5 = db_select('reservations', 'r')
  ->fields('r', array('reservation_id'))
  ->condition('resource_id', $resource_id)
  ->condition('reservation_date', array($start_time, $end_time), 'BETWEEN');

$query5->addExpression('COUNT(reservation_id)', 'rcount5');
$result5 = $query->execute();
Run Code Online (Sandbox Code Playgroud)

在我看来,它更容易阅读:)

查看动态查询以获取更多信息和示例.