0

データベースに最近追加された値の一意の 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 fatal error: Object of class PDO could not be convert to string

私はまた、その最後の行を次のようにしようとしました:

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

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

しかし、どちらも機能しませんでした (SQLState General Error 2053 が発生しました)。

ありがとう、

4

2 に答える 2

4

lastInsertID()PDO インスタンスで呼び出す必要があります。

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

する必要があります

$op_link_id = $db->lastInsertID();
于 2012-07-03T05:48:53.200 に答える
2

これを試して

$op_link_id = $db->lastInsertID();
于 2012-07-03T05:49:52.747 に答える