2011-12-20 16 views
11

他の投稿を調べてみましたが、探しているものがまったく見つかりませんでした。PHP MySQL PDOのlastInsertIDが原因で致命的なエラーが発生する

If the PDO driver does not support this capability, PDO::lastInsertId() triggers an IM001 SQLSTATE.

方法:PDO ::におけるlastInsertId()のためのPHPマニュアルによると

[Tue Dec 20 13:59:23 2011] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined method PDOStatement::lastInsertId() in /media/Storage/www/2011/admin/public/ajax.users.php on line 87, referer: http://localhost/2011/admin/public/menu.php?page=users 

私はDBクエリ、この致命的なエラーを返します

$sql = "INSERT INTO groups(Name) VALUES (:name)"; 
$dbs = $dbo->prepare($sql); 

$dbs->bindParam(":name", $_POST['name'], PDO::PARAM_STR); 

$dbs->execute(); 

$groupID = $dbs->lastInsertId(); 

に持っています私のサーバがlastInsertId()をサポートしているかどうかを判断できますか?エラーログにIM001は表示されません。

これを実行すると、データは正常に挿入されますが、グループのアクセス許可を設定するINSERTの次のセットで使用するIDを取得できません。

答えて

28

lastInsertId()はPDOSクラスのメソッドであり、PDOStatementクラスのメソッドではありません。

これは動作するはずです:

$groupID = $dbo->lastInsertId(); 
+2

すごいLOL、私はダム感謝を感じます! – guyfromfl

関連する問題