PHP データベースを利用したWebアプリケーションの開発【第二回】データの登録 insert

【第一回】ではデータベース接続部分をクラス化するところまで進みました。

今回は、会員情報を登録するフォームページとデータベースに会員情報登録の為のクラスファイルを作成します。

この記事の著者 ->S.E; です。

普段は、システム開発に必要なヒアリング、システムの要件定義、設計からプログラマとしてWebサイトやWebアプリケーションの開発、WordPressでのブログの執筆やサーバー運用・管理を行っています。

このページは「未経験の為のプログラミング講座 ゼロから始めるPHPプログラミング〜初級から実践編までを網羅〜」としてPHPの基本的な部分を【初級編】【中級編】【上級編】に分けて解説しています。最終的には簡単なフォームやシステム開発をフルスクラッチで行うことを目的としています。また、参考になる書籍なども紹介しています。

登録フォームをHTMLでコーディングする

それでは会員情報を登録するためのフォームページを作成します。

会員情報のテーブルの内容は下記になります。フォームから登録するのは

  • 名前 = input type=”text”
  • 年齢 = input type=”number”
  • 性別 = input type=”radio”
  • 電話番号 = input type=”number”

となります。それ以外の項目

  • プライマリキー
  • 登録日
  • 更新日
  • 削除キー

に関してはフォームページからの操作はできない仕様で開発します。

項目カラム名内容
プライマリキーtest_id個別のIDを自動連番で登録
名前test_nameユーザーの名前
年齢test_ageユーザーの年齢
性別test_genderユーザーの性別 1 or 2で登録(1 => 男性、2 => 女性)
電話番号test_telユーザーの電話番号
登録日test_createyyyy-mm-dd hh:ii:ss形式で登録
更新日test_update更新時自動でyyyy-mm-dd hh:ii:ss形式で登録
削除キーtest_delete_key0 or 1を登録( 0 => 有効、1 => 削除)
データベースの内容

データ登録用edit.phpのコーディングとフォームの仕様

まず、edit.php ファイルを作成します。
会員情報登録用のフォームを用意し、name属性の値はテーブルのカラム名とします。
電話番号は「-(ハイフン)」の有無を統一するため入力エリアを3個用意しname属性の値は、test_tel01、test_tel02、test_tel03とします

これでHTMLのコーディングは完了です。

会員情報登録用のクラスを作成する

次に、会員情報をデータベースに登録する際のプログラムのクラスファイル「class.Member.php」を作成します。クラス名は「Member」で先に作成している「class.DB.php」を継承して作成したいと思います。

DBクラスを継承するため「class.DB.php」をincludeします。
クラスを継承するには「extends クラス名」を記述します。クラスを継承することによって継承元(DBクラス)のクラスをインスタンスせずに継承先(Memberクラス)でメソッドやプロパティを利用することができます。

会員情報登録用のクエリを記述

次に、formからPOSTされた情報をデータベースに登録するためのメソッドを作成します。

まず、クラス内定数として入力エラーの文言を定義します。

次に、各inputから送信された情報を取得すセッターとセットした情報出力するゲッターのプロパティーとメソッドを用意します。

checkError() は入力された情報を確認し入力の漏れがないかをチェックするメソッドです。

insertDB() はセットされたデータをデータベースに登録するためのメソッドです。
DBクラスを継承しているのでデータベースへの接続は「parent::ConnectDB()」で完了します。接続後は、登録用のSQL文を用意します。

HTMLにスクリプトを埋め込む

edit.phpとclass.Member.phpができたので、edit.phpでプログラムが動作するようスクリプトを埋め込みます。

class.Member.phpをインクルードし、Memberクラスをインスタンスします。
フォームからデータが送信された時に各動作を行うので「$_SERVER[‘REQUEST_METHOD’] == ‘POST’」内に各種セッターなどを設定します。

checkError()で true ならデータ登録、 false ならエラー表示し再入力を促します。

created by Rinker
Webアプリケーションにはなぜ脆弱性が生まれるのか?脆弱性を解消するにはどうプログラミングすればよいか?PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる!
created by Rinker
「この目的を実現するためには、どの文法テクニックが適合しやすいだろう」?「このプログラムをより読みやすくするために、どんなアプローチができるだろう」?といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。
created by Rinker
Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。「この目的を実現するためには、どの文法テクニックが適合しやすいだろう」?「このプログラムをより読みやすくするために、どんなアプローチができるだろう」?

データベースにデータを登録してみて

HTMLやPHPのスクリプトは比較的簡素に記述しましたが、処理はクラス内のメソッドに全て任せればフロントがではセットし結果のみ取得する流れとなり、コードが非常に簡素になり、メンテナンス性が増します。

created by Rinker
PHP7の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得! PHPプログラミングの標準教科書『独習PHP』が、最新のPHP7に対応。PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、PHPの基本構文から、クラス、データベース連携、セキュリティまで、詳細かつ丁寧に解説します。
created by Rinker
時間がなくたって、プログラミングは学べます。学習を躊躇していた人たちに、既存の入門書で挫折した人たちに、「これならできる!」の最短カリキュラムを、土日の14時間で提供。まったくのプログラミング初心者が簡単なWebデータベースアプリを構築できるまでの成長コースを、手取り足取り、導きます。

コメントする

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)