【ウェブカツ進捗】DBにユーザー情報が反映されない(解決済み)【WEBサービス部】

■学習内容

WEBサービス部 Lesson10 ユーザー登録機能を作ろう part1,part2

 

つまずいたところのメモ。

 

問題点1 DBに未登録のはずなのにEmail重複エラーが出る

問題点2 DBにデータが保存されない

 

使用OS:mas OS High Sierra

ブラウザ:GoogleChome

 

■確認したこと

1)ウェブカツの質問板で同じ部分でつまずいてる人がいないかチェック

 →めっっちゃいた。

 

2)質問一覧の回答の中で試せるものを片っ端から試していく

 →具体的には以下を実施。

 

①94行目の「PDO::ERRMODE_SILENT」を「PDO::ERRMODE_WARNING」へ変更

 最初のERRMODE_SILENTだとSQL文記入ミスがあってもエラーを吐かない記述なので、SQL実行が失敗した場合にエラーを吐かせるため後者に書き換える。

 

書き換え後、私の場合

General error:1364 Field 'age' doesn't have a default value

とエラーが出た。このエラーは MySQL 5.6 からの仕様らしい

デフォルト値にNULL許容(NULLにチェックを入れる)すればOK。

https://blog.dreamhive.co.jp/yama/12197.html

 

しかし、これだけでは解決せず。

DBのusersテーブルは空であることを確認済み。でもEmail重複エラーが出る。

 

②(質問板の質問とコーチの回答より)validEmailDup()関数の処理内容を見直す

 →50行目について修正していなかったことが原因

 

 修正前

 if(!empty($result))

 修正後

 if(!empty(array_shift($result)))

 

※動画中にちらっと注意事項もあったし、質問板にもこの件の事書いてあったので、自分の確認漏れ。

 

あとはlogin_timeを追加忘れていたくらい。

 

ちなみにlesson9で、formのパスワードのinputタグtype属性をpasswordに変えてからレイアウトが崩れた。

これも質問板の回答で解決したけどブラウザ側のキャッシュが原因だった模様。

macだとshift+command+rでリロードできる。自分はこれで修正後のcssが適用された。

 

 

蛇足:

ウェブカツに入部してからまだ一度も質問してない。大体自分がつまずくところは既に先輩さんたちが質問してるから質問板漁るだけでほとんど解決できる。

 

あと自分でググることもあるけど、開いたページがサム●イとかテッ●エキスパートのブログだとイラっとする。これらのブログ記事で解決できたことは一度もない。個人ブログの方が分かりやすい。ただ前者のサイトは検索上位に入ってくるから厄介・・・っていう愚痴。

 

 

おわり