ホームページ >データベース >mysql チュートリアル >MySQL の LAST_INSERT_ID() がゼロを返すのはなぜですか?
MySQL: LAST_INSERT_ID() はゼロを返します
テーブルにデータを挿入した後、LAST_INSERT_ID() を使用して最後に挿入された ID を取得しようとすると、ユーザーは、関数が 0 を返すという永続的な問題に遭遇する可能性があります。これは、代替挿入を使用している場合でも発生する可能性があります。 NULL や 0 の挿入、値全体の省略などの構文。
調査と解決策:
この問題の主な原因は、多くの場合、phpmyadmin 構成内の MySQL の PersistentConnections 設定にあります。 。この設定が FALSE に設定されている場合、クエリごとに新しい接続が確立され、接続コンテキストが事実上リセットされます。
この特定のインスタンスでは、問題は phpmyadmin 設定の PersistentConnections フラグが FALSE に設定されていることが原因で発生しました。各クエリによって新しい接続が開始され、その結果、新しい CONNECTION_ID が生成されます。その結果、最後に挿入された ID を取得するために接続コンテキストに依存するため、LAST_INSERT_ID() は無効になりました。
結論:
phpmyadmin で PersistentConnections を TRUE に設定することで、構成ファイルを使用すると、接続の永続性の問題を解決できます。これにより、接続コンテキストが複数のクエリにわたって維持されるため、LAST_INSERT_ID() 関数が最後に挿入された ID を正しく取得できるようになります。
以上がMySQL の LAST_INSERT_ID() がゼロを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。