*

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でプログラミングを始めるためにはXAMPPのインストールともう一つエディタというソフトをそろえ

記事を読む

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

それでは前回のコードを例に少しずつ内容について説明をしていきます。 値を取得するには まず一番最

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 その2

前回の学習 PHPで掲示板を作ろう! 掲示板の作成方法 その1 それでは掲示板の作成方法その

記事を読む

プログラミングが初心者にとって難しい4つの理由

今回は初心者がプログラミングをやるのがなぜ難しいかをしっかり書いていこうかと思います(爆)。

記事を読む

作業が遅くてイライラしている方必見!作業スピードを改善するネタ・ツールなど

エンジニアとして仕事をしていますと、「ある機能を実装する最適な方法(設計やプログラムの組み方全般)を

記事を読む

初心者でもできる!作れる!WEBサービスの開発 その2 制作体験記編

前回からの続きですが、主にプログラムの勉強目的として、簡単なWEBサービス(アフィリエイトサイト)を

記事を読む

フレームワークのメリット・デメリット

こんばんは。松本です。 昨日25日にはオフィスで第一回目の授業を開講させていただきました。広島

記事を読む

未経験者がWEB系企業の就活で注意すべき5つのポイント

昨日、あまり寝てないせいか、今日も寝れない松本です(爆) 生活リズムはやはり大切ですね。睡眠時

記事を読む

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

このサイト、PHPの学習サイトなのに内容から遠ざかっていました(爆) 個人的にはプログラミング

記事を読む

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

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

記事を読む

Comment

  1. テルテル坊主 より:

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

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

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

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

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

    • matsumoto より:

      テルテル坊主様

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

  2. toasa より:

    こんにちは。

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

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

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

    • matsumoto より:

      toasaさま

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

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

matsumoto にコメントする コメントをキャンセル

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

転職エージェントについて

さて、エンジニアとして転職を考えている人であれば転職エージェントを使っ

エンジニアが転職して年収を上げる方法を考えてみました。

えー前回の記事でも書きましたが、2020年2月現在転職活動中です。

2020年のご挨拶

今更ですが、明けましておめでとうございます。 2019年も2本し

自社開発>客先常駐である本当の理由

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

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

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

→もっと見る

  • follow us in feedly
PAGE TOP ↑