簡體   English   中英

PDO lastInsertId(); 問題php

[英]PDO lastInsertId(); issue php

我有一個父子關系數據庫。 我需要先插入父表然后獲取ID,然后我將用於將數據插入子表。

以下是我用於插入數據庫的代碼片段。 這是我第一次使用PDO類。 我得到的錯誤; 未定義的屬性: 在非對象數據庫:: $ db上調用成員函數lastInsertId()。 我必須承認我是PHP的新手。 謝謝


{

    public function __construct($DB_TYPE, $DB_HOST, $DB_NAME, $DB_USER, $DB_PASS)
    {
        parent::__construct($DB_TYPE.':host='.$DB_HOST.';dbname='.$DB_NAME, $DB_USER, $DB_PASS);
}

$this->db = new database(DB_TYPE, DB_HOST, DB_NAME, DB_USER, DB_PASS);

    $this->db->insert('images', array(
        'image_userID' => $data['image_userID'],
        'image_date' => $data['image_date']
    ));

/**
 * insert
 * @param string $table A name of table to insert into
 * @param string $data An associative array
 */
public function insert($table, $data)
{
    $fieldNames = implode('`, `', array_keys($data));
    $fieldValues = ':' . implode(', :', array_keys($data));

    $sth = $this->prepare("INSERT INTO $table (`$fieldNames`) VALUES ($fieldValues)");

    foreach ($data as $key => $value) {
        $sth->bindValue(":$key", $value);
    }

    $sth->execute();

$result= $this->db->lastInsertId();
 return $result;
}

最后一個插入ID來自活動語句 ,而不是來自數據庫句柄。 因此,將代碼的最后一行更改為:

$return = $sth->lastInsertId();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM