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

mysqli_insert_id() 期望参数 1 是 mysqli,给定的对象

mysqli_insert_id() 期望参数 1 是 mysqli,给定的对象

PHP
大话西游666 2022-01-02 15:36:21
我试图从数据库中获取特定数据,该特定数据应该是最后输入的 ord_id。我在程序运行时将它保存在一个名为 ord_id 的新变量中,我收到此错误警告:mysqli_insert_id() 期望参数 1 为 mysqli,错误中给出的对象在第 35 行,看起来像这样添加到购物车.phprequire_once 'config.php';$config = new database();$ord_id = mysqli_insert_id($config);$data = $config->getData($ord_id);foreach($data as $i){    echo        '<tr>        <td> '.$i['ord_id'].'</td>        <td> '.$i['card_id'].'</td>        <td> '.$i['field1'].'</td>        <td> '.$i['field2'].'</td>        <td> '.$i['field3'].'</td>        <td> '.$i['field4'].'</td>        <td> '.$i['field5'].'</td>        <td> '.$i['ord_qty'].'</td>        <td> '.$i['card_price'].'</td>        <td> '.$i['ord_total'].'</td>';public function getData($ord_id){    $sql = "SELECT * FROM product_order WHERE ord_id = :ord_id";    $stmt = $this->con->prepare($sql);    $stmt->execute(['ord_id' => $ord_id]);    $data = $stmt->fetchAll(PDO::FETCH_ASSOC);    return $data;}
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

您调用的方式$this->con->execute()意味着您使用的是 PDO,而不是 mysqli,因此您无法调用mysqli_insert_id. 你应该使用$this->con->lastInsertId().


public function getOrdId() {

    return $this->con->lastInsertId();

}

然后你可以使用:


$ord_id = $config->getOrdId();

请注意,这仅在您INSERT使用相同的数据库连接执行时才有用。如果您在 之后立即调用它,它将不会返回任何有用的东西$config = new database();。


查看完整回答
反对 回复 2022-01-02
  • 1 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号