• 質問欄に同じエラー
    の内容がなかったので質問させてください。 入門ph...
  • 質問者画像

    新井 秀平 
    質問欄に同じエラーの内容がなかったので質問させてください。

    入門phpではDBに登録できたのですが、
    今回はMYSQLに直接挿入したところ、

    #1366 - Incorrect integer value: '' for column 'zip' at row 1

    といったエラーが出でいます。調べてところ、サーバー側のMYSQLの設定による発生と出たのですが、
    他の生徒の質問にあったNULLにチェックもしたのですが、やはり登録できません。

    具体的にどういったことが原因なのでしょうか。
    回答 0

     
    Lesson9「データベースを使ってみよう!」の補足の部分にも記載ありますが、
    エラーメッセージにおける、
    inccorrectは「誤り」、integer valueは「数値(数値型)」
    という意味になります。

    今回の会員登録の処理では、zipに何も指定せずに登録することになるのでNULLが登録されることになります。

    「NULLにチェックがされた」とありますが、今一度、phpMyAdminの「構造」のタブをクリックし、usersテーブルのzipカラムにて以下の点を確認してください。

    ・「NULL」の列の記載が「はい」になっていること。
    ・「デフォルト値」が「NULL」になっていること。

    上記が指定されていなければ、Nullを登録することができず、該当のエラーが発生すると考えられます。

    返信者画像

    新井 秀平 
    無事解決することができました。


    莉恵さんが質問しているように、今のMySQLのバージョンでは厳格モードを変更するか、容認したいNULLにすべてチェックを入れるかのどちらかをする必要があるということですね。

    これからはエラーの単語も調べるようにしたいと思います。