わかりました。私はphp大学のプロジェクトに取り組んでいます。学生に登録させ、詳細(名、名前、電話番号、ID番号など)を送信させる必要があります。
最初はID番号にintを使用しましたが、計算を行わないため、varcharに変更しましたが、この変更後も、送信したすべての例で、最大int値が「2147483647」になります。それをvarcharに指定しましたが、なぜこれが発生し、どうすれば修正できますか。
それが役立つ場合、テーブルフィールドの照合はすべてlatin1_swedish_ciです。私はMySQLの専門家ではないので、この問題の根底に到達するために必要な他の情報がある場合は、質問してください。
編集:フィールドの値もbigintに戻しましたが、8888888888888(13文字)を入力してもテーブルに2147483647がスローされるため、varcharまたはbigintを使用すると2147483647が返されますが、何が問題になっていますか?
更新:フィールドの最大値を変更しようとすると、phpmyadminから次のエラーが発生しました。
SQL query:
ALTER TABLE `student` CHANGE `idno` `idno` BIGINT( 99999999999999 ) NOT NULL
MySQL said:
#1439 - Display width out of range for column 'idno' (max = 4294967295)
更新:intval()を削除すると、この問題が修正されました
$id_number=intval($_POST['id_number']);
$id_number=($_POST['id_number']);