【发布时间】: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
listingsWHEREdate_added>= :date ANDdate_addedprepare($sql); $statement->bindParam(":date", $select['from'], PDO::PARAM_STR); $statement->execute(); -
检查使用 $from = date('Y-m-d H:i:s',strtotime("2016-02-01"));