[英]How do you use bind_params for a timestamp data?
我试图在两个时间戳之间获取数据库上的数据,并且我已经看到许多使用 BETWEEN 的帖子。 但是我无法克服与我的 bindparams 相关的错误,这就是为什么我无法测试我在另一篇文章中看到的代码。
关于我的代码的第一部分,我只是认为 $date1 和 $date2 上的值是一个字符串,我想也许我需要将它转换为 MySQL 时间戳格式,所以我使用了以下代码。
如何根据我的代码在时间戳上使用 bindparams?
我尝试了以下代码,但在 POSTMAN 上一直出现错误。 例如变量数与参数数不匹配
这是我在 Postman 上用于测试的 date1 和 date 2 的示例值
$date1 is 2019-12-13 00:00:00
$date2 is 2019-12-15 00:00:00
数据库操作.php
//view cart product sales in cartData via date
public function viewCartDatabyDate($date1, $date2){
$timestamp1 = strtotime($date1);
$timestamp2 = strtotime($date2);
$newDate1=date("Y-m-d H:i:s", $timestamp1);
$newDate2=date("Y-m-d H:i:s", $timestamp2);
$stmt = $this->con->prepare("SELECT * FROM cart_data WHERE created BETWEEN '$newDate1' AND '$newDate2' ORDER BY created");
//$stmt->bind_param("s", $newDate1);
//$stmt->bind_param("s", $newDate2);
$stmt->bind_param("s", $created);
$result = $stmt->get_result();
while($data = $result->fetch_assoc()){
$cartdata[]=$data;
}
return $cartdata;
}
您需要使用占位符。 SQL 中的问号表示这是附加变量的地方。
$stmt = $this->con->prepare("SELECT * FROM cart_data WHERE created BETWEEN ? AND ? ORDER BY created");
$stmt->bind_param("ss", $newDate1, $newDate2);
$result = $stmt->get_result();
$certdata = $result->fetch_all(MYSQLI_ASSOC);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.