ホームページ >データベース >mysql チュートリアル >MySQL の整数挿入で正しい値ではなく 2147483647 が表示されるのはなぜですか?

MySQL の整数挿入で正しい値ではなく 2147483647 が表示されるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-13 06:25:10867ブラウズ

Why is My MySQL Integer Insertion Showing 2147483647 Instead of the Correct Value?

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

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