*

PHPで掲示板を作ろう!(データベース編) その6 まとめ編

公開日: : 最終更新日:2016/08/09 MySQL, PHP, WEB全般, 講義 , , ,

今回はMySQLの第6回目の講義です。今回で終わりですので、ソースの説明と今までの解説の概略を書いておきます。

前回までの記事

PHPで掲示板を作ろう!(データベース編) その1 データベースとは

PHPで掲示板を作ろう!(データベース編) その2 MySQLログイン編

PHPで掲示板を作ろう!(データベース編) その3 データベース作成編

PHPで掲示板を作ろう!(データベース編) その4 SQL編

PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編

ソース

今回はちょっと詳細な説明をしたいと思います。

解説

PHPとデータベースの接続

ソース

解説

今回、データが入っているのがテキストファイルではなく、データベースになりますので、まずデータベースとつながなくてはいけません。

それがこの処理になります。

コマンドプロンプトからMySQLにつなぐときはまずユーザー名とパスワードを入力し、データベースを選択しました。

これは何をしているかというとコマンドプロンプトでやってきたことと同じことをPHPにやらせることになります。

MySQLにちゃんと接続できた場合、$linkの中にはMySQLの接続情報みたいなものが入っています。(知りたい方はvar_dumpで中身を見てみましょう。現段階では完全に理解しようとすると頭がフリーズすると思いますので、とりあえず接続情報全般と覚えておくとよいかと思います。)

そして接続できなかった場合falseが帰ってきます。

だから下記のようにfalseでなかったら、というような書き方になります。

この処理はfalse以外の時は正常に接続できている、とみなしてOKなのです。(trueでないことに注意しましょう。)

ちなみに接続できない場合は「データベースの接続に失敗しました。」といったメッセージを表示することになります。

エラーチェック

ソース

解説

投稿データがあるかどうかと未入力がないかをチェックしています。この部分はお問い合わせフォームや既存の掲示板などで何回か扱ったテーマですので復習になります。

わからない方は下記のエントリーがわかりやすいかと思います。

お問い合わせフォームを作ろう! その4(PHP)

SQLをPHPにどう渡すか

ソース

解説

この部分と次のSELECT文の受け取りが今回の山場かと思われます。投稿があったときはINSERT文を発行します。

PHPからMySQLに接続を行う場合は、

  1. まずSQLを作る
  2. Mysql_queryでMySQLにSQL文を渡す。

といった手順を踏むことになります。

SQLを作る部分ですが、普通にSQLを書くと

INSERT INTO  ( name, comment ) VALUES  ( ‘$name’ , ‘$comment’ )になります。

横1行で書いてももちろんプログラム自体は動きますが、このように行ごとにわけてかいたほうが

  • 単純に構造が見やすい
  • あとで修正があったときにラク

などのメリットがあります。

SQLインジェクション対策

また下記のソースですが、これはSQLインジェクション対策といわれるものです。

セキュリティ対策の一環です。

Webの場合、不特定多数が訪れますので、悪意のある入力を考慮する必要があります。悪意のあるデータを加工もせずにそのままMySQLにつなぐとデータを破壊されたり、見てはいけないデータを見られる可能性があります。そういった悪意のある入力を無効化する処理がこの部分になります。

ここで作ったSQLをmysqli_queryという関数の中につなぐと、書かれたSQLが実行されます。成功不成功によってメッセージを変更します。

SELECT文の受け取り方

ソース

解説

INSERT文の後はSELECT文です。基本的にはINSERTと一緒でSELECT文を作成し、mysqli_queryでMySQLに問いかけます。

INSERTとの違いですが、$resからデータを取り出す作業です。INSERTの場合、「データの更新」になりますので、その結果はデータ入力成功か不成功しかありません。

SELECTの場合は「データの取得」になりますので、結果としてデータが帰ってきます。

とはいっても$resに直接データが入っているわけではなく、データの場所を示した情報が含まれています。これを手掛かりに、実際にデータを取り出す作業が下記の部分になります。

この処理は下記のリンクのテキストファイルから実際にデータを取り出す作業と構造が全く同じです。

PHPで掲示板を作ろう! 掲示板の作成方法 その4(ファイル読み込みとHTML表示)

しおりの位置」を変えていき、データを取得していくわけです。

最後は取得したデータをHTMLに表示しますが、この部分も以前学習した部分なのでわからない方は下記リンクで勉強してみてください。

繰り返しを学ぼう (for,foreach)

まとめ

6回にわけてMySQLで作る掲示板をやってきました。授業だと演習もかねて1日~2日ぐらいかけてこれをやりますね。

ちょっと学習したことを簡単にまとめてみます。

MySQLへの接続

データベースの作成・テーブル作成

データベースの作成

データベースの選択

ユーザーの作成

テーブルの作成

基本的なSQLの構文

データを検索する

データを入力する

データを更新する

データを削除する

PHPとMySQLの接続

PHPとデータベースの接続

SQLの投げ方 

基本的にはこのような内容ですね。

見た目のアプリは非常にしょぼいのですが、これに現代のWebアプリの基本が詰まっていますので、初学者の方は何も見ずにこれが作れるまで何度も練習してみましょう。

何も見ずにできるようになったら次にいろいろとカスタマイズしてみるとよいと思います。

関連記事

なぜPHPなのか

はじめまして、プログラミングの講師を担当させていただきます、松本と申します。 このたび、株式会

記事を読む

就活生必見! Webエンジニアになるなら知っておきたい超基本業界用語

本日はWEB業界でよくつかわれる専門用語について私の知っている範囲で書いていこうと思います。

記事を読む

未経験者がWEBエンジニアとして就職する前に身につけておいたほうがよいスキル一覧

夕方、用事から帰ってきてから寝てしまったので寝れなくなっている松本です。 寝れないので今日はも

記事を読む

就職するときに見落としがちな考え方

今は自社で就職の斡旋などはしていないのですが、人材紹介会社で働いていたときは生徒の就職に立ち会ってき

記事を読む

バグをゼロに近づけるテスト手法とは?

私は去年のはじめまではPHP、去年の春~年末はJavaScript、今年からはJavaを触っています

記事を読む

勘違いしてはいけない未経験ややる気という言葉

かなり久しぶりの投稿になってしまいました・・・ 以前ダイエットに成功し、2年以上かけて10kg

記事を読む

お問い合わせフォームを作ろう! その2(PHP)

おはようございます。松本です。 繰り返しますが、このブログは技術ブログなので(笑)PHPのネタ

記事を読む

教え方がうまい人に共通するたった1つの考え方

やや遅い気もしますが、あけましておめでとうございます。 今年もよろしくお願いします。 昨

記事を読む

データを扱ってみよう その1(変数)

こんにちわ、松本です。 前回の記事は読んでいただけたでしょうか。私よりPHPに関して知識のある

記事を読む

挫折必至!初心者がやってはいけないプログラミングの学習法 ワースト4

多くの方はプログラミングをどのように身につけたらいいのか・・・ということに関心があると思います。

記事を読む

Comment

  1. テルテル坊主 より:

    こんにちは塾長様。テルテルです。
    先日はコメント返信いただき有難うございました。

    この関連記事のその1~その6までなんとか来ることが出来ました。

    Xamppでテストしながら、このページの上段に記載されているソースを使い、$db_host等を書き換え、稼働サーバーに載せてみました。

    表示はされたのですが、いざ入力すると”書き込みに失敗しました”エラーとなります(泣)

    お暇な時にでも何かアドバイスいただけたら助かります。

    • matsumoto より:

      テルテル坊主様

      引き続きコメントありがとうございます。
      メールにてご連絡させていただきました。
      ご連絡お待ちしております。

  2. toasa より:

    こんにちは。

    私もテルテル坊主様と同じ箇所で止まっており、

    ”書き込みに失敗しました”と表示されます。

    よろしければお答えください。

    • matsumoto より:

      toasaさま

      書き込みありがとうございます。
      と言いますか、返信が遅くなりすいません。
      もしよろしければソースを送っていただければ添削していただいてもよいですよ。
      回答はおそらく週末になるかと思いますが・・・

      もしよろしければmatsumoto@dt30.netにソースを添付して送っていただければと思います。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

無料PHPスクール
自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑