Help us understand the problem. What is going on with this article?

SQLでテーブルにデータ挿入がうまくいかない時

テーブルを作成して、実行すると以下のエラーが発生してしまいました。

エラー内容

SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'phone_number'
(phone_numbeカラムに入ってる値が指定してる範囲を超えています)

phone_numberのカラムタイプに ”integer” を指定していて、それが原因でした。

$table->integer(‘phone_number');

”integer(INT)” には、最小値〜最大値まで決められた数値があり、それがこちらです。

(ENEEU).png

INTの部分を見てみると、最小値が2〜最大値が8までとなっています。

私は、phone_numbeのカラムに “08022339999” と指定していて、最大値の8を超えた9を入れてしまっていました。
そのため、エラーが発生してしまったのです。

カラムタイプをbigintに変更すれば解決です。

参考記事
https://dev.mysql.com/doc/refman/5.6/ja/integer-types.html

ksygu
自社開発企業で2020年7月からエンジニアのキャリアスタート🐱 日々学んだことを書いていきたいと思います!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away