問題の概要:
一般的な方法を使用した 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 サイトの他の関連記事を参照してください。