gpt4 book ai didi

php - PDO lastInsertId();问题 php

转载 作者:可可西里 更新时间:2023-11-01 13:55:20 25 4
gpt4 key购买 nike

我有一个具有父子关系的数据库。我需要先插入到父表中,然后获取 ID,然后我将使用该 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();

关于php - PDO lastInsertId();问题 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12596058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com