*

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で掲示板を作ろう! 掲示板の作成方法 その2

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

記事を読む

データを扱ってみよう その2(配列)

こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ

記事を読む

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

ちょっと間隔があいてしまいましたが、今回はMySQLの講義です。 前回までの記事 PHPで掲示板

記事を読む

開発を便利にする道具たち

PHPだけではありませんが、プログラミングには開発スピードをアップさせるための便利な道具があります。

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 まとめ

さて4回にわけて、掲示板のプログラムを学習してきました。 見た目は超シンプルで実際に動かしてみ

記事を読む

よく使う処理をまとめよう その1 (関数)

おはようございます。松本です。 私の会社では10時半から掃除の時間でして、ここ数ヶ月ずっとやっ

記事を読む

プログラミングを独学で身につけるための4ステップ(実践編)

前回の記事ではプログラミングを独学で身につけるための心構え的なお話をしました。 今回は、実際に

記事を読む

「初心者が勉強するのに良いプログラミング言語は何ですか?」を真面目に考えてみる

プログラミングをそもそもやったことがない方であれば、タイトルのように「どのプログラミング言語をやった

記事を読む

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

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

記事を読む

初心者が知っておくべきプログラミングの学習法

おはようございます。松本です。 最近、体重が増えているのが悩みでして今現在71kgあります。去

記事を読む

Comment

  1. テルテル坊主 より:

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

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

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

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

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

    • matsumoto より:

      テルテル坊主様

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

  2. toasa より:

    こんにちは。

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

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

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

    • matsumoto より:

      toasaさま

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

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

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

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

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

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

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

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

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

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

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

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

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

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

→もっと見る

  • follow us in feedly
PAGE TOP ↑