Integer Salah Mengimport MySQL: 2147483647
Apabila cuba memasukkan integer yang ketara ke dalam pangkalan data MySQL, pengguna mungkin menghadapi isu pelik di mana nombor yang berbeza disimpan daripada yang dimaksudkan. Untuk menyelidiki penyelesaiannya, mari kita terokai coretan kod yang disediakan:
$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";
Ia cuba memasukkan nilai yang disimpan dalam pembolehubah $steam64 ke dalam lajur pangkalan data bernama steam64. Walau bagaimanapun, pengguna melaporkan bahawa nilai yang dimasukkan berbeza daripada nilai yang disimpan dalam $steam64. Punca masalah ini terletak pada jenis data lajur steam64. Dalam MySQL, jenis data lalai untuk integer ialah INT, yang boleh menyimpan nilai antara -2,147,483,648 hingga 2,147,483,647.
Dalam kes ini, nilai yang dimasukkan (2147483647) melebihi nilai maksimum yang boleh dipegang oleh jenis data INT. Akibatnya, MySQL secara automatik menukar nilai kepada integer terbesar yang boleh ditampungnya, iaitu 2147483647.
Untuk menyelesaikan isu ini, jenis data lajur steam64 mesti ditukar kepada BIGINT. Jenis data ini mempunyai julat nilai yang disokong yang lebih besar dan boleh menampung nilai 2147483647 dengan selesa tanpa sebarang pemotongan atau penukaran. Setelah jenis data diubah suai, nilai yang betul akan dimasukkan ke dalam pangkalan data.
Atas ialah kandungan terperinci Mengapakah MySQL Menyimpan 2147483647 Daripada Nilai Integer Besar Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!