新しいデータが頻繁に挿入されるテーブルがあります。そのテーブルの最後のIDを取得する必要があります。どのようにしたらよいでしょうか。
SELECT MAX(id) FROM table`に似ていますか?
PDOを使用している場合は、PDO::lastInsertId
を使用します。
Mysqliを使用している場合は、mysqli::$insert_id
を使用します。
まだMysqlを使っている場合は
*Please, don't use `mysql_` functions in new code**。これらはもうメンテナンスされていません そして公式に非推奨とされています。赤い箱*](http://uk.php.net/manual/en/function.mysql-connect.php)が見えますか?代わりに[prepared statements*](http://en.wikipedia.org/wiki/Prepared_statement)について学び、[PDO](http://php.net/pdo)または[MySQLi](http://php.net/mysqli)を使用してください - この記事がどちらを選択するかの参考になるでしょう。PDO を選択した場合は、ここに良いチュートリアルがありますを参照してください。
しかし、どうしても必要な場合は、mysql_insert_id
を使ってください。
あなたが書いたものは、最大の id
を得ることができるでしょう。それがユニークで自動インクリメントであると仮定すれば、同時性の問題を引き起こすことに抵抗がなければ、問題ないでしょう。
データベースとしてMySQLを使用しているので、挿入を行った現在の接続でのみ動作する特定の関数LAST_INSERT_ID()
があります。
PHP にも mysql_insert_id
という特殊な関数があります。