在 PHP 中无法使用 MS Access 之间
Posted
技术标签:
【中文标题】在 PHP 中无法使用 MS Access 之间【英文标题】:BETWEEN not working MS Access in PHP 【发布时间】:2018-08-07 05:49:41 【问题描述】:我有这段代码,它应该获取特定日期之间的所有数据,但它不起作用。该查询有效,只是它一直忽略 BETWEEN 子句,因此它仍然显示所有没有日期的数据。
$statement = Database::prepare("SELECT COUNT(*) AS total_applicants FROM student_applicants a WHERE a.created_at BETWEEN (:start_date AND :end_date) AND a.disabled_at IS NULL AND a.disabled_by IS NULL AND a.deleted_at IS NULL AND a.deleted_by IS NULL");
$statement->bindValue(':start_date', '#5/28/2018 12:00:00 AM#');
$statement->bindValue(':end_date', '#5/28/2018 11:59:59 PM#');
$statement->execute();
$student_applicants = $statement->fetch()['total_applicants'];
【问题讨论】:
【参考方案1】:您将字符串传递给查询,但使用参数,因此您应该传递时间值。
如果您使用的是字符串连接(您不应该这样做),那么您的时间格式将是有效的。
尝试以下方法:
$statement = Database::prepare("SELECT COUNT(*) AS total_applicants FROM student_applicants a WHERE a.created_at BETWEEN (:start_date AND :end_date) AND a.disabled_at IS NULL AND a.disabled_by IS NULL AND a.deleted_at IS NULL AND a.deleted_by IS NULL");
$statement->bindValue(':start_date', strtotime('5/28/2018 12:00:00 AM'));
$statement->bindValue(':end_date', strtotime('5/28/2018 11:59:59 PM'));
$statement->execute();
$student_applicants = $statement->fetch()['total_applicants'];
【讨论】:
以上是关于在 PHP 中无法使用 MS Access 之间的主要内容,如果未能解决你的问题,请参考以下文章