ホームページ >バックエンド開発 >PHPチュートリアル >データの異常 - thinkphp プロジェクトで奇妙な問題が発生しました。レコードを挿入するとデータが変更されます。
thinkphp データ例外 phpbug
図に示すように、最初の 2 つの print_r の後ろに exit ステートメントがある場合、print_r によって出力されるデータは正常です。ただし、レコードを挿入する文(赤枠の文)の後にexitを入れると、出力されるものの一部がnullになってしまいます。
明らかに、上記の $_GET とデータは、insert ステートメントの実行時に変更されました。ただし、印刷は挿入ステートメントの前に行われます。
下の図は、exit ステートメントが insert ステートメントの後に配置された後の print_r の出力です
以下は、exit ステートメントが挿入レコードの前に配置された後の print_r の出力です
この問題は私を長年悩ませてきました。長い間、それを解決する方法がわかりません。同じ問題を理解している人、または同じ問題に遭遇した人が回答をくれたり、一緒に議論したりできることを願っています。
exit は現在のスクリプトをすでに終了させているのではないですか? どうすれば追加できるでしょうか?
D("") メソッドを使用する場合は、対応するモデルが add() メソッドを書き換えてフィールド フィルタリングまたは権限チェックを追加したかどうかを確認するか、D() を M() に変更してみてください。