获取最后插入值的ID

时间:2012-07-03 05:45:26

标签: php sql

我正在尝试获取最近为数据库添加的值的唯一ID。我尝试使用LastInsertID,我相信这与MySQL不兼容(http://www.php.net/manual/en/pdo.lastinsertid.php)。

$sql = "INSERT INTO discussion_links (link_url, link_title, link_source, publish_date, link_side, img_link) VALUES (?, ?, ?, ?, ?, ?)";
$sth=$db->prepare($sql);
$sth->execute(array($_POST['OP_link_url'], $_POST['OP_title'], $_POST['OP_source'], $_POST['OP_pub_date'], $_POST['OP_disc_side'], $_POST['OP_img_url']));
$op_link_id = $sth->$db->lastInsertID();

这里我得到错误:PHP Catchable致命错误:类PDO的对象无法转换为字符串

我也尝试过最后一行:

$op_link_id = $sth->fetch(PDO::lastInsertID);

并且

$temp = $sth->fetch(PDO::FETCH_ASSOC);
$temp_op_link_id = $temp['link_id'];

但是没有人工作(得到了一些SQLState General Error 2053)。

谢谢,

2 个答案:

答案 0 :(得分:4)

应该在PDO实例上调用

lastInsertID()

$op_link_id = $sth->$db->lastInsertID();

应该是

$op_link_id = $db->lastInsertID();

答案 1 :(得分:2)

试试这个

$op_link_id = $db->lastInsertID();