为了账号安全,请及时绑定邮箱和手机立即绑定

您如何将 bind_params 用于时间戳数据?

您如何将 bind_params 用于时间戳数据?

PHP
有只小跳蛙 2022-06-17 15:37:13
我正在尝试在两个时间戳之间获取数据库上的数据,并且我看到了许多使用 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:00DbOperation.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;    }
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

您需要使用占位符。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);


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信