ホームページ >データベース >mysql チュートリアル >MySQL で「LAST_INSERT_ID()」が 0 を返すのはなぜですか?

MySQL で「LAST_INSERT_ID()」が 0 を返すのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-02 12:49:40834ブラウズ

Why Does `LAST_INSERT_ID()` Return 0 in MySQL?

LAST_INSERT_ID() が MySQL で一貫して 0 を返す

問題の概要:

一般的な方法を使用した MySQL テーブルへのデータの挿入(NULL、0、または空の括弧の挿入など)その後、最後に挿入された ID (LAST_INSERT_ID()) をクエリすると、一貫して 0 が返されます。この問題は、PHP の mysql_insert_id と PDO::lastInsertId() の両方に影響します。

解決策:

問題は、MySQL phpmyadmin 構成ファイルにあります。 PersistentConnections が FALSE に設定されている場合、クエリごとに新しい CONNECTION_ID が確立されます。これにより、LAST_INSERT_ID() の結果が以前の接続に関連付けられているため無効になります。

この問題を解決するには、phpmyadmin 構成ファイルで PersistentConnections を TRUE に設定します。これにより、複数のクエリ間で同じ接続が維持され、LAST_INSERT_ID() が最後に挿入された ID を正確に返すことができるようになります。

追加情報:

詳細については、 PersistentConnections の影響については、トピック「すべてのクエリが新しいクエリを作成する」を参照してください。 CONNECTION_ID()".

謝辞:

この問題の特定に貴重な支援をしていただいた dnagirl に感謝します。

以上がMySQL で「LAST_INSERT_ID()」が 0 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。