5

mysql の照会後に最後に挿入された ID を取得するのが最善の解決策であると思いますか?

私は次の解決策を見つけました:

<?php
function get_current_insert_id($table)
{
    $q = "SELECT LAST_INSERT_ID() FROM $table"; 
    return mysql_num_rows(mysql_query($q)) + 1;
}
?>

またはmysql_insert_idphp関数を使用することもできますが、明らかにこの関数はbigint(IDフィールドに使用しているもの)ではうまく機能せず、連続したSQL問い合わせがたくさんある場合は信頼できない可能性があります.

誰かがこのタスクを達成するための信頼できる迅速なソリューションを提供できますか?

4

2 に答える 2

4

単一の INSERT ステートメントを使用して複数の行を挿入する場合、LAST_INSERT_ID() は、最初に挿入された行に対してのみ生成された値を返します。これは、他のサーバーに対して同じ INSERT ステートメントを簡単に再現できるようにするためです。

于 2012-04-29T10:21:45.730 に答える