この記事は
文系学生がPHPを4日でマスターする。(1日目)からの続きです。
今日は昨日に引き続きPHPを使ってのデータベース連携フォームの開発
今日はインターン3日目。
昨日はどこをどう調べてどうすればいいかさっぱりでしたが、
今日は分かるところから1つずつ解決していこうという方針で作業に取りかかりました。
データベース連携フォームについておさらいしておくと、
データの出力画面、入力画面、確認画面、登録画面を作るという内容でした。
これだけだとちょっと分かりにくいので補足しておくと…
入力画面
インターンの応募するときによく
- 大学名
- 学部
- 学年
- 名前
- 志望理由
とかを書くページありますよね?
それです。
確認画面
インターンの情報を入力して”登録”ボタンを押すと
「この情報で登録していいですか?」
って自分が入力した情報が出てきて確認するページがありますよね。
それのことです。
登録画面
確認画面で”登録”をクリックすると
「情報が登録されました!」
と表示されますよね。
そのページです。
出力画面
これ何の画面?
と思った方もいると思います。
出力画面は登録された情報を指定された順番に上から
並ベて表示してくれるという画面です。
今日こそフォームを作る!
今回は
- 学籍番号
- 名前
- 年齢
- 備考
の4つの項目でフォームを作ってみました。
朝の時間は思ったよりも順調に進み、
入力ページ、その入力された情報を表示する確認ページは完成。
こんな感じに…
入力画面
————————————————————————————————
確認画面
この調子で!
続けて、TOPページの出力画面にあたる、
MySQLに入力された情報を表示するページにも取りかかります。
このMySQLというのはデータベース、簡単に言うと情報をためておく大きな倉庫みたいな物です。
Amazonが発注された商品をすぐ輸送するために倉庫にたくさんの商品を管理している。
っていうとイメージできますよね。
要は商品→情報になっただけです。
MySQLという大きな倉庫に情報という商品が管理されている、そういうイメージです。
ここまでは昨日に比べればだいぶん順調に来ていましたが、
最後のMySQLにデータを送信するページがなかなかクリアできない…。
「これで動くはず!」とページを更新してもエラーどころか何も表示されない…。
ここだろうか?と検討してみるものの状況は一向に進展しない…。
救世主!!!
この状況を救ってくれたのが
error_reportingとvar dumpという2つの関数でした。
error_reportingはエラーが起きている場合、そのエラーを表示してくれる関数、
var dumpは変数がきちんと出力されているか確認するための関数。
この2つを使ってエラーが起きている箇所を特定していきました。
これまで当てずっぽうに、おそらくここが怪しいと自分の予測だけをたよりに修正していましたが、
この2つの関数のおかげでエラー箇所の特定の正確さ、スピードが格段に上がりました。
今日のこの経験のおかげでエラーチェックの重要さが分かりました。
ラストスパート!
しかし、間違っている命令文が分かっても、その文のどこが間違っているか何度見直しても分からない…。
調べては修正して更新の繰り返しを行うもののなかなか正しく動いてくれない…。
ラスト1文なのにそこから進めないまま結局10時間近くが経過していきました。
行き詰まっていたとここで、文さんがインターン生紹介ページ用の写真を
撮影してくれるということでしばらく気分転換。
写真撮影をしながら文さんと話をして少し気分が楽になったところでもう1度集中!
このまま時間だけが過ぎていくがすぎていく中ついに!ついに答えが分かった!!!
答えは驚くほどシンプルでした。
「’」←コイツ。
ご飯粒のようなコイツ…。
SQLにINSERT する命令文のVALUSの値にこのシングルクォーテーションがついていなかった…。
しかしクォーテーション1つが抜けただけでも
正常に作動してくれないのがコンピュータというもの。
あらためてそのことを実感した1日でした。
ようやくクリア!フォームができてしまった!?
とおもいきや、思わぬ落とし穴が待っていたのです…
今日学んだこと
- phpの基礎
- MySQLとphpの連動のさせ方
- エラーチェックの方法とその大事さ
- クォーテーションはわすれるな!