使用php从sqlite数据库查询特定数据

时间:2018-02-27 22:13:21

标签: php sqlite

您好我在使用sqlite数据库管理我构建的系统(用php和html编写)的预订。我已设法连接到数据库并运行一个运行的简单计数查询(请参阅下面的代码)。但是我发现很难执行一个允许我选择两个日期之间的保留的查询,即(2018-02-20和2018-02-25)。我还附上了我的数据库的屏幕截图,用于可视化目的。

计数查询代码:

<?php
$db = new PDO('sqlite:daypilot.sqlite');

$query = 'SELECT count(*) FROM events;';

$result = $db->query($query);

$data = $result->fetch(PDO::FETCH_ASSOC);

echo "There are {$data['count(*)']} bookings made\n";
?>

1 个答案:

答案 0 :(得分:0)

由于您将输入传递给查询,因此您需要使用预准备语句而不仅仅是query()。看起来您的事件表有两个日期,因此以下查询应该捕获与指定日期范围重叠的所有事件。

$start = '2018-02-20';
$end = '2018-02-25';

$sql = 'SELECT * FROM events WHERE `end` > ? AND `start` < ?';
$stmt = $db->prepare($sql);
$stmt->execute([$start, $end]);
$events = $stmt->fetchAll();

foreach ($events as $event) {
    var_dump($event);  // output with your desired formatting here
}