MySQL で 0 を返す LAST_INSERT_ID() のトラブルシューティング
LAST_INSERT_ID() を使用して最後に挿入された行の ID を取得しようとすると、ユーザーは、一貫して 0 を返すという複雑な問題に遭遇します。これは、 NULL、0 の指定、ID 値の省略など、さまざまな方法を使用して行を挿入します。
原因と解決策
この問題は、MySQL の PHP 構成設定が原因で発生することがよくあります。 PersistentConnections は FALSE に設定されます。 PersistentConnections が無効になっている場合、クエリごとに新しい接続が確立され、毎回一意の CONNECTION_ID が生成されます。その結果、LAST_INSERT_ID() 関数は複数の接続にわたる挿入操作を追跡できず、0 を返します。
この問題を解決するには、MySQL の PHP 構成ファイルで PersistentConnections 設定を調べ、それが TRUE に設定されていることを確認します。これにより、MySQL は永続的な接続を維持できるようになり、複数のクエリにわたって CONNECTION_ID を保持し、LAST_INSERT_ID() が最新の ID を正確に取得できるようになります。
以上がMySQL で LAST_INSERT_ID() が 0 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。