编辑 - 以下代码显示更正
我需要创建一个搜索函数,在SQLite数据库中搜索某个日期范围。
例如:
到目前为止,我有:
if (!empty($_POST)) {
$sql = "SELECT * from table where record_date between date('now') and date('now', :record_date||' days')";
$stmt = $db->prepare($sql);
$stmt->bindValue(':record_date' , '%'.$webdata['record_date'].'%', SQLITE3_TEXT);
$result = $stmt->execute();
while ($row = $result->fetchArray()) {
echo '<p>' . htmlspecialchars($row['id']) . " : " .
htmlspecialchars($row['record_date']).'</p>';
}
}
?>
这似乎没有带来任何结果。
如果我使用SqliteOnline.com查询数据库,这对查询工作正常:
SELECT * from table where record_date between date('now') and date('now', '7 days')
答案 0 :(得分:0)
关闭引号 $ sql =“SELECT * from table where record_date between date('now')and date('now',':record_date days');”
答案 1 :(得分:0)
不应引用命名占位符,因为它们会被解释为文字值。
尝试更改:
date('now', ':record_date days')
为:
date('now', :record_date||' days')
您还需要修改以下内容:
$stmt->bindValue(':record_date' , '%'.$webdata['record_date'].'%', SQLITE3_TEXT);
为:
$stmt->bindValue(':record_date' , $webdata['record_date'], SQLITE3_TEXT);