PHP Mysql 使用 PDO 进行日期时间搜索
PHP Mysql datetime search with PDO
在 DateTime 列上努力 return 结果。我只是空了。
一直在尝试不同的方式,但最终得到相同的结果。
我认为出现 space ?!?
时就会出现问题
代码:
$myStart=$_POST['jQueryDateStart'];
$myEnd=$_POST['jQueryDateEnd'];
$myStart = $myStart." 00:00:00";
$myEnd = $myEnd." 23:59:59";
if ($myStart>$myEnd ){
echo "<script>";
echo " alert('Start Date must less than End Date');";
echo " window.location.href='location.php';";
echo "</script>";
exit();
}
$mytable = $_SESSION["SESS_myuserid"];
$stmt = $db->prepare("SELECT * FROM ".$mytable." WHERE PTime BETWEEN ':SearchS' AND ':SearchE'");
$stmt->bindParam(':SearchS', $myStart, PDO::PARAM_STR);
$stmt->bindParam(':SearchE', $myEnd, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo $result[0]['PLong'];
echo $myStart;
echo $myEnd;
echo $mytable;
exit();
开始日期数据:2016-05-22 00:00:00
结束日期数据:2016-05-27 23:59:59
列中的时间示例:2016-05-26 13:29:24
我试过在变量周围使用 Single ' ',如语句代码中所示,但没有,结果相同。
Wrap off quotes
来自占位符,否则它将您的查询创建为 WHERE PTime BETWEEN ''2016-05-22 00:00:00'' AND ''2016-05-27 23:59:59''
只需使用
$stmt = $db->prepare("SELECT * FROM ".$mytable." WHERE PTime BETWEEN :SearchS AND :SearchE");
在 DateTime 列上努力 return 结果。我只是空了。 一直在尝试不同的方式,但最终得到相同的结果。 我认为出现 space ?!?
时就会出现问题代码:
$myStart=$_POST['jQueryDateStart'];
$myEnd=$_POST['jQueryDateEnd'];
$myStart = $myStart." 00:00:00";
$myEnd = $myEnd." 23:59:59";
if ($myStart>$myEnd ){
echo "<script>";
echo " alert('Start Date must less than End Date');";
echo " window.location.href='location.php';";
echo "</script>";
exit();
}
$mytable = $_SESSION["SESS_myuserid"];
$stmt = $db->prepare("SELECT * FROM ".$mytable." WHERE PTime BETWEEN ':SearchS' AND ':SearchE'");
$stmt->bindParam(':SearchS', $myStart, PDO::PARAM_STR);
$stmt->bindParam(':SearchE', $myEnd, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo $result[0]['PLong'];
echo $myStart;
echo $myEnd;
echo $mytable;
exit();
开始日期数据:2016-05-22 00:00:00 结束日期数据:2016-05-27 23:59:59
列中的时间示例:2016-05-26 13:29:24
我试过在变量周围使用 Single ' ',如语句代码中所示,但没有,结果相同。
Wrap off quotes
来自占位符,否则它将您的查询创建为 WHERE PTime BETWEEN ''2016-05-22 00:00:00'' AND ''2016-05-27 23:59:59''
只需使用
$stmt = $db->prepare("SELECT * FROM ".$mytable." WHERE PTime BETWEEN :SearchS AND :SearchE");