ホームページ > バックエンド開発 > PHPチュートリアル > MySQL ストア 2147483647 が正しくないのはなぜですか?それを修正するにはどうすればよいですか?

MySQL ストア 2147483647 が正しくないのはなぜですか?それを修正するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-22 04:36:44
オリジナル
348 人が閲覧しました

Why Does MySQL Store 2147483647 Incorrectly, and How Can I Fix It?

MySQL の不正な整数挿入: 2147483647 のケース

MySQL にデータを挿入すると、特に整数値を扱う場合に、予期しない動作が発生することがあります。 。このような複雑な問題の 1 つは、整数 2147483647 を挿入するときに発生し、意図したものとは異なる値がデータベースに格納される可能性があります。

これが発生する理由を理解するには、MySQL の整数サイズ制限の概念を理解することが重要です。 。デフォルトでは、MySQL は 'int' データ型を使用し、その最大値は 2147483647 です。これは、このしきい値より大きい整数値を 'int' 列に正確に格納できないことを意味します。

提供されたコード スニペットではの場合、変数「$steam64」には Steam Web API ユーザー ID が格納されている可能性があり、これは大きな数値になる可能性があります。この値が「int」として定義されたカラムに挿入されると、MySQL はその値を最大整数範囲内に強制的に収めようとするため、前述の不正な値が生じます。

この問題の解決策は、次のデータ型を変更することです。列を「bigint」に変更します。大きな整数は「int」よりもはるかに大きな値を保持できるため、2147483647 のような値を切り捨てや歪みなく正確に保存できます。

MySQL でデータ型を変更するには、次のクエリを実行するだけです:

ALTER TABLE users_info MODIFY COLUMN steam64 BIGINT;
ログイン後にコピー

この変更により、MySQL が $steam64 のような大きな整数値を正しく処理できるようになり、データが確実にデータベースは、スクリプトに保存されている値を正確に反映します。

以上がMySQL ストア 2147483647 が正しくないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート