ホームページ >データベース >mysql チュートリアル >MySQL の整数挿入で正しい値ではなく 2147483647 が表示されるのはなぜですか?
MySQL 挿入中に不正な整数が 2147483647 に変換されました?
データベース管理の世界では、データベース管理の世界では、作成したデータが無効になる状況に遭遇することは珍しくありません。テーブルへの挿入は、意図した値と一致しません。最近の問題の 1 つでは、MySQL データベースへの整数値 (2147483647) の誤った挿入に関する懸念が生じました。
状況を詳しく見てみましょう。ユーザーは、Steam ID を表す有効な整数値を含む $steam64 という変数を持っていました。次のコード スニペットを使用してこの値を MySQL データベースに挿入したとき、まったく異なる整数 (2147483647) が挿入されていることに気づき当惑しました:
$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";
この奇妙な動作により、混乱と不満が生じました。 。デバッグ作業の結果、var_dump($steam64) と変数のエコーの両方が正しい整数値を返したことが判明し、ユーザーは何が問題だったのか疑問に思いました。
この謎に対する答えは、steam64 列のデータ型にあります。 MySQL テーブル。 MySQL の整数のデフォルトのデータ型は INT で、最大値は 2147483647 です。この場合、$steam64 に格納されている値がこの最大値を超えたため、上位ビットが切り捨てられ、最大値が挿入されました。表現可能な整数 (2147483647).
この問題の解決策は簡単です。単にデータ型を変更するだけです。 steam64 列を INT から BIGINT に変換します。このデータ型は、はるかに大きな整数値を収容できるため、$steam64 に格納されている値がデータベースに正しく挿入されることが保証されます。
以上がMySQL の整数挿入で正しい値ではなく 2147483647 が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。