MySQL プリペアド ステートメントには再準備が必要: 「プリペアド ステートメントを再準備する必要があります」エラー
「プリペアド ステートメント」が発生した場合のトラブルシューティングMySQL で「再準備する必要があります」というエラーが表示される場合は、サーバー間の不整合を示します。テーブル定義のクライアント バージョン。通常、この問題は、MySQL ストアド プロシージャに関連するコードをホスティング サーバーに移行した後に発生します。
エラーの原因:
エラーは、MySQL がテーブルのキャッシュを維持しているために発生します。メタデータ。クエリごとに列情報を取得する必要性を減らし、パフォーマンスを最適化するために使用されます。ただし、ローカル マシンとホスティング サーバーのバージョン間でテーブル構造が変わると、キャッシュされたメタデータが古くなり、ステートメントを正常に実行できなくなります。
考えられる解決策:
MySQL バグ #42041 で示唆されているように、「table_defining_cache」変数の値を増やすと問題を解決できる可能性があります。この変数は、MySQL がキャッシュするテーブルの数を指定します。キャッシュ サイズを増やすことで、キャッシュされたテーブル定義と実際のテーブル定義の間で不一致が発生する可能性を減らすことができます。
手順:
SET GLOBAL table_definition_cache = <new_value>;
参照:
MySQL でのステートメント キャッシュの詳細については、MySQL の公式ドキュメントを参照してください。 https://dev.mysql.com/doc/refman/8.0/en/statement-cache.html
以上がMySQL プリペアド ステートメントを再準備する必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。