PDO lastInsertId在CLI模式下


PDO lastInsertId in CLI Mode

我在CLI模式下工作,我得到致命错误。

调用未定义方法Supplier::lastID()在/var/www/vhosts/**********/httpdocs/content/mail/tr/critic_stock_mail.php第11行

正常模式下一切正常。每个人都说小心使用lastInsertId try catch块。但事实并非如此。正常模式下一切正常

但我删除了lastInsertId部分在try catch块。在CLI模式下,它也不工作。我该怎么办?

 try{
        $supplierObj->begin();
            //Mail Gönderim Tarihini Güncelliyoruz
            $sql = "UPDATE ".PREFIX."product SET supplier_mail_date = NOW() WHERE supplier = :supplier";
            $supplierObj->query($sql);
                $supplierObj->bind(':supplier', $supplier_id, PDO::PARAM_INT);
            $supplierObj->execute();
           //Gönderilen Mailleri Tabloya Yazıyoruz...
           $sql = "INSERT INTO ".PREFIX."supplier_order (supplier_id, create_date) VALUES (:supplier_id, NOW())";
           $supplierObj->query($sql);
           $supplierObj->bind(':supplier_id', $supplier_id, PDO::PARAM_INT);
           $supplierObj->execute();
           $order_id = $supplierObj->lastID();
            //Gönderilen Mailin Detaylarını tabloya yazıyoruz...
            foreach($supplier as $product){
                $sql = "INSERT INTO ".PREFIX."supplier_products (order_id, product_id, quantity, stock_up) "
                     . "VALUES (:oid, :product_id, :quantity, :stock_up)";
                $supplierObj->query($sql);
                    $supplierObj->bind(':oid', $order_id, PDO::PARAM_INT);
                    $supplierObj->bind(':product_id', $product['id'], PDO::PARAM_INT);
                    $supplierObj->bind(':quantity', $product['stock_quantity'], PDO::PARAM_INT);
                    $supplierObj->bind(':stock_up', $product['stock_up'], PDO::PARAM_INT);
                $supplierObj->execute();
            }
        $supplierObj->end();
    } catch (PDOException $e){
        $supplierObj->cancel();        
    }

尝试更改行

$order_id = $supplierObj->lastID();

$order_id = $supplierObj->lastInsertId ();