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

我试图从数据库中获取特定数据,该特定数据应该是最后输入的 ord_id。我在程序运行时将它保存在一个名为 ord_id 的新变量中,我收到此错误警告:mysqli_insert_id() 期望参数 1 为 mysqli,错误中给出的对象在第 35 行,看起来像这样


添加到购物车.php


require_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;

}


大话西游666
浏览 193回答 1
1回答

繁华开满天机

您调用的方式$this->con->execute()意味着您使用的是 PDO,而不是 mysqli,因此您无法调用mysqli_insert_id. 你应该使用$this->con->lastInsertId().public function getOrdId() {&nbsp; &nbsp; return $this->con->lastInsertId();}然后你可以使用:$ord_id = $config->getOrdId();请注意,这仅在您INSERT使用相同的数据库连接执行时才有用。如果您在 之后立即调用它,它将不会返回任何有用的东西$config = new database();。
打开App,查看更多内容
随时随地看视频慕课网APP