2011-07-02 13 views

答えて

61

PreparedStatementで​​メソッドを呼び出した後、挿入行のIDはinsert_id属性になります。それだけを読んでください。

$pstm->execute(); 
$pstm->insert_id; 
+0

がありますが、それぞれに対応する一意のIDが返されます実行? [documentation](http://php.net/manual/en/mysqli-stmt.insert-id.php#102299)の一番のコメントは、mysqli_stmt-> insert_id'の代わりに 'mysqli_connection-> insert_id'を使うべきだと言っていますあなたが同じ準備済みの文を何度も実行する場合。これが正しいかどうかはあなたが知っているかもしれないと思った。 – Cheslab

6
$newid = mysqli_insert_id($mysqli_db); 

$mysqli_dbは、あなたのmysqliデータベース接続です。私が知っている限り、行を挿入した方法(準備されたステートメントまたは直接INSERT INTO)には問題はありません。 mysqli_insert_id()は、このdb接続を使用して最後に挿入された行のIDを返す必要があります。

別のクエリをSELECT LAST_INSERT_ID();のようにすることもできます。

+0

このメソッドは、トランザクションでも機能することに言及する価値があります(それほど明白ではありません)。 – Itako

+0

これは 'PreparedStatement'でも使えますか? '$ pstm-> execute();'の後に 'insert_id'属性にid:' $ mysqli-> insert_id; ' –

関連する問題