【问题标题】:PHP Mysql PDO retrieve records by date rangePHP Mysql PDO 按日期范围检索记录
【发布时间】:2016-09-10 13:31:50
【问题描述】:

我正在使用 PDO 方法从我的数据库中检索项目列表,当我这样做时:

$select['from'] = date('Y-m-d 00:00:00',strtotime("2016-02-01"));
$sql = "SELECT * FROM listings WHERE date_added >= :date AND date_added < DATE_ADD(:date, INTERVAL 30 DAY)";
$statement = $pdo->prepare($sql);
$statement->bindParam(":date", $select['from'], PDO::PARAM_STR);
$statement->execute();

我的结果的 var_dump 给出:

object(stdClass)#5 (2) { ["data"]=> array(0) { } ["rows"]=> int(0) }

直接通过 PhpMyAdmin 运行相同的查询会得到所需的结果。 date_added 是数据类型DATETIME

【问题讨论】:

  • 把完整的代码写成prepare()和execute()
  • 你绑定到:date的变量的值是多少?
  • @developersaumya 要求的完整代码是 $select['from'] = date('Y-m-d 00:00:00',strtotime("2016-02-01")); $sql = "SELECT * FROM listings WHERE date_added >= :date AND date_added prepare($sql); $statement->bindParam(":date", $select['from'], PDO::PARAM_STR); $statement->execute();
  • 检查使用 $from = date('Y-m-d H:i:s',strtotime("2016-02-01"));

标签: mysql pdo php-7 mysql-5.6


【解决方案1】:

这可能是您的日期格式的问题。 您必须在 PHP 中使用格式 'Y-m-d H:i:s'。

$date = date('Y-m-d H:i:s', strtotime($yourdate));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多