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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-22 16:19:10206ブラウズ

Why Does LAST_INSERT_ID() Return 0 in MySQL?

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 サイトの他の関連記事を参照してください。

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