PHPでブログ作成にはデータベースが必要なのか?

このQ&Aのポイント
  • PHPでブログを作る際にデータベースが必要なのか疑問に感じています。
  • 公開されてるソースを見るとデータベースの使用例が少なく、HTMLとCSSだけで作れるように見える。
  • しかし、データベースを使うことでより高機能なブログを作ることができる可能性もあるため、利用する価値はあるのか気になっています。
回答を見る
  • ベストアンサー

PHPでブログを作るのにDBを使った方が良い?

 公開されてるソースがあるのでそれを使えばいいんですが、プログラミングを学んでみたいという目的もあって、PHPの勉強を始めたところです。  で、あるサイトで学んでるんですが、その中でMySQLというものも出てきました。  データベースの勉強もここからが初めてで、四苦八苦しながらもなんとか読み進めていったんですが、今度はPHPとデータベースを組み合わせてブログを作ってみましょうという話になりました。  もともとブログや掲示板を作りたくて勉強を始めたので願ったり叶ったりなんですが、ここで一つ疑問が。  ブログってデータベース使ってましたっけ?(^_^;  公開されてるソースの解説を見てみると、特にデータベースが必要というような表記もなく、PHPとHTMLとスタイルシートだけで作ってるように見えます。  なので、もしかしたら余計な方向へ行こうとしてる?と、このままこのサイトで勉強を進めて良いものか不安になってしまいました(^_^;  よく分かってない素人考えとしては、ブログの仕組みってPHPでHTMLファイルを作ってるだけというイメージなのですが、データベースは必要なのでしょうか?  今はseesaaブログで借りてブログを書いていますが、仕組みが見えてないだけで、こういうブログもデータベースを使ってる?  だとしたら公開されてるブログのソースは、データベースを使える人限定ってことになりますよね?  ブログを作るのにデータベースは必要なのか?  また、必要ないにしても、データベースを使った方が良い面があるのか?  どうなんでしょうか?

noname#235729
noname#235729
  • PHP
  • 回答数5
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.4

拡張子が「.html」などであっても、ブログ運営においてデータベースはほとんどのケースで使われています。URLは見かけ上の存在でしかない場合があります。以下に例を示します。 【例】 (URLエンコードは省略しています) 1. 以下のようなURLでユーザがアクセスしてくる http://blog.example.com/programming/PHPはじめました!.html 2. サーバー側でリクエストURLが書き換えられる http://example.com/blog.php?category=programming&title=PHPはじめました! WebサーバーソフトウェアにApacheを利用しているのであれば、.htaccessというファイルに設定を記述することでこのような機能を実現することが出来ます。URLがきれいになるメリットががあります。 では、データベースを使う場合と、XMLファイル等に保存する場合を比較してみます。 【データベース】 ・セキュリティ的に強固。 ・複雑な検索の実装が比較的容易で、実行速度も申し分ない程度に可能。 ・後から仕様変更などの融通が利く。 ・単純なことしかしない場合の性能は劣る。ただ、キャッシュをうまく使えばこの限りではない。 【XMLファイル】 ・ファイルを設置する階層、アクセス権限などに注意しないと脆弱性となり得る。 ・検索機能の実装が困難。 ・仕様変更に弱い。 ・単純なことしかしない場合の性能は抜群。 何でもかんでもリレーショナルデータベースに頼りすぎるのはよくない、とよく言われますが、個人で小規模なブログを運営するだけであれば戸惑いなくそれを採用すべきであると言えるでしょう。小規模であればパフォーマンス面の心配はほとんど不要です。 PHPからデータベースを利用するサンプルを探すと、古い情報がよく出てきます。こういうものはセキュリティ的に問題があったりするので使わないようにしましょう。 ・「mysql_query」などの関数 → 現在は非推奨。絶対に使ってはいけない。 ・「mysqli_query」などの関数 → 使ってもOK。但し、後述するオブジェクト指向で書くやり方に比べれば古典的な方法になり、コードが汚くなりやすいため、あまりおすすめは出来ない。ただ、オブジェクト指向が全く分かっていない初心者でもとりあえず動くものは作れるというメリットはある。 ・「mysqli」クラス → 推奨される。上記のオブジェクト指向型。設定次第で例外を扱えるようになる。 ・「PDO」クラス → 最も推奨される。mysqliクラスよりも構成がシンプル。これを覚えるだけでMySQL以外のSQLiteなどの他のデータベースの操作も習得したことになり、汎用性に優れる。設定次第で例外を扱えるようになる。 MySQL入門 http://www.ipa.go.jp/files/000018731.pdf PDO http://www.php.net/manual/ja/book.pdo.php PDOの利用 http://www.phpbook.jp/tutorial/pdo/ PHPオブジェクト指向入門 http://qiita.com/mpyw/items/41230bec5c02142ae691 PHPでデータベースに接続するときのまとめ http://qiita.com/mpyw/items/b00b72c5c95aac573b71

noname#235729
質問者

お礼

 ご回答ありがとうございます。  あんまりいろんなシステムを絡めると、表示速度が遅くなるかも知れないと懸念してましたが、はっきり言って個人ブログ程度なら、そんなに影響なさそうです。  何より検索面やセキュリティ的に強固になるのは魅力的。  ファイルを生成して置くだけのシステムで、その辺をどうするか想像すらできてませんでしたから(^_^;  手抜きをしたいならレンタルで借りれば良いわけだし、どうせ勉強するなら皿まで喰らうつもりでやってみたいと思います。

その他の回答 (4)

回答No.5

書いた記事を格納する場所が必要なんでデーターベースはブログでは必ず使っていると思います。 PHPとデーターベースの勉強を始めるのであれば是非データーベースを使ってブログを構築してくださいね。 データーベースを使った方がいいのは大量のデーターを格納しても安全性が高いのとデーターベースはSQLという言語が使えて検索機能を作る時に便利です。

noname#235729
質問者

お礼

 ご回答ありがとうございます。  やはり共通する意見として、検索の話がありますね。  実際、検索を考えたときに、サーバーにファイルを置くだけだとどうすれば良いのか分かりませんでしたが、MySQLが少し分かってくると、だいたいこんな感じでやれば良いのかな?ぐらいは想像できるようになりました。  併せて勉強してみたいと思います。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.3

DBMSの利用は必須ではありません。普通のファイルへのデータ保存でもブログシステム程度なら作ることは出十分出来ます。 ただ、今回の目的がプログラミングの学習のためと言うことなので、どうせならDBMSの勉強もした方が良いと思いますので、DBMSを使った方が良いでしょう。 DBMSの勉強はしたくないと言うことなら、一般ファイルで作っても良いです。

noname#235729
質問者

お礼

 ご回答ありがとうございます。  正直、データベースは想像すらしてなかったんで面倒くさいというのが本音なんですが、別に仕事にしてるわけでもなく、時間はある方なので試しに勉強してみたいと思います。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

>ブログってデータベース使ってましたっけ?(^_^; WordpressとかMovableTypeとかを「使ったこと」はありませんか? ほとんどのブログシステムはデータベースの利用が前提です。いろいろな機能(カテゴリ指定での一覧とかキーワード検索とか)を実現したり処理速度を(データが増えても)落とさないようにするために必須と言ってもいいです。 細かい設定はインストーラがやってくれたりもしますので、「ブログを利用する」だけならデータベースの知識は要りませんが「システムを作る側」はそうはいきませんね。

noname#235729
質問者

お礼

 ご回答ありがとうございます。  実はその二つ、聞いたことはあっても使ったことはないんですよ。なんだか難しそうだったんで(^_^;  ブログにおいてのPHPの立場って、各ページのHTMLファイルを作るだけかと思ってました。  PHPが分かるようになってくると、なんだかそれも違うことに気づくことができるようになりました。  データベースを使った方が楽そうですね(^_^;

  • t_ohta
  • ベストアンサー率38% (5080/13276)
回答No.1

投稿された記事やコメントを何らかの形で管理しなければいけません。 方法としては、記事やコメントをDBに登録して管理する方法と、テキストファイルで保存して管理する方法が考えられます。 件数が少ないうちはファイルでもいいでしょうが、件数が多くなるとファイルでは管理しきれなくなる可能性ができてます。 また、記事を検索する場合はDBを使っているほうが簡単に検索ができます。

noname#235729
質問者

お礼

 ご回答ありがとうございます。  PHPを使ってhtmlファイルを作成すれば良いだけかと思っていましたが、確かに検索など考えるとDBを使った方が良いかもしれませんね。  まだ覚えたてで「かもしれない」ぐらいでしか分かりませんが(^_^;

関連するQ&A

  • apache・mysql・PHPの設定

    まったくの初心者です。 PHPをつかってデータベースを使ったWEBサイトを作りたいと思って取り組んだんですが、開発できる環境を整えようと四苦八苦しています 手始めに自分のマシン(winXP)にインストールしたのですがapache・mysql・PHPの設定が難しくて困っています。本を読んでもちんぷんかんぷんです・・・ なにかよいサイト等ご存じないでしょうか? どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPの初学者とmySQL

    2週間ほど前からPHPを独学で勉強を始めました。 色々なPHP初級者勉強サイトや本を見ながら四苦八苦しているのですが データベースのmySQLなどの項目が出てくるたびに そこで勉強を止めています。 まだ十分にPHPを理解できておらず シンプルな例題の流れがやっと多少理解できるようになり始めた程度なのですが そういうレベルでも先にmySQLの勉強を始めたほうが良いのでしょうか? それともある程度のレベルまでPHPを勉強して シンプルでもある程度のPHPプログラムが自分で書けるようになって それからmySQLの勉強を始めたほうが良いのでしょうか? ちなみにデータベース自体の知識は全くありません。 あと色々なmySQLの初心者入門サイトを見ると 「コマンドプロンプト」からの操作でmySQLの勉強解説が されています。 XAMPPと一緒にインストールされたmySQLを見ると コマンドプロンプトでの操作ではなく エクセルのような画面での操作のようになっています。 mySQLの数年前と最新版のバージョンの違いだと思うのですが、 仕様ががなり違うのか 今更コマンドプロンプト操作での勉強は効率がよいのかなと 不安になってしまいます。 不安になっても勉強するしかないことは分かっていいるのですが データベースの知識のない初学者が 今からmySQLを勉強するにあたって お勧めのサイトがあればご紹介ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • DB.phpが見つからない

    以前、ローカル(Windows2000)上でApache + PHP4 + MySQL1.4でデータベースを使用したPHPのプログラムを作っており、正常に動作もしておりました。 ある時、システムが不安定になってきたのでシステムのリカバリーを行い、あらかじめMySQLのデータとPHPのソースを逃がしておきました。 リカバリー後はせっかくなのでApache2 + PHP5 + MySQL1.4で設定を行い、逃がしておいたデータ等をすべて戻し、PHPを起動してみると、 Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in ファイルパス on line 行数 と、いったエラーが表示されます。 データベースを使用しないPHPのプログラムはすべて動作するのですが、データベースを使用するプログラムはすべて同様のエラーが発生します。 いろいろ、インストールの方法などを確認したのですが、結局何が原因か突き止めることができませんでした。 何かご存知の方、教えてください。

    • ベストアンサー
    • PHP
  • PHPの勉強ができるサイト

    こんにちは、 PHPの勉強を始めたものです。 PHPのマニュアルを見ながら四苦八苦していますが、何か初心者でもわかりやすくPHPのことを説明しているサイトはないでしょうか? 何かお分かりの方がいましたら教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでhtmlを取り出すには

    こんにちは。phpを勉強中なのですが質問があります。 phpでhtmlソースを取り出したいのですが、htmlソース(内容はdiv~/divで囲んだソース)はどのように保存すれば良いでしょうか? htmlソースなのですが大量にありまして、そのソースごと並び替えをしてhtmlを表示したいのですが・・。 今自分で作ってみたのは、単純にテキストファイルにhtmlを書いて、phpで並び替え、テキストファイル読み込み表示するという方法なのですが、とりあえずは上手くできたのですが、この方法ですとテキストファイルが大量にできてしまいます。 初心者のサイトではデータはmysqlのデータベースを使う・・とあったので同時にmysqlを少しさわってみたのですが、例えばデータベースの値の所にhtmlのソースを放り込むという事なのでしょうか? 作りたいのはゲームのレビューサイトなのですが可能であれば日付順などボタン一つで並び変えたいのです。(div~/divで囲んだソースごと並び変えたい。div~/divの中には自分のレビューやら画像が入ります) htmlとphpを覚え始めたばかりで、よく分からないのですが通常みなさんはhtmlファイルは何に格納するのでしょうか?

    • ベストアンサー
    • PHP
  • weather.comのお天気DBについて

    PHP + MySQLでサイト構築をしています。 ネタ探しに色々なWebサイトを見ていると、MamboというCMSを見つけました(デジパワーという会社が日本語版の製作をしている様です)。 デジパワー(http://www.pwr.jp/)のHPに、Mambo用のお天気モジュール(weather.comから天気情報を取得)がありましたので、これを何とかして自分のサイトに組み込めないかと四苦八苦している最中です。 PHPのソースを見ているのですが、weather.comのDBに接続する様な部分がなく(クエリーは投げているみたいですが)、どの様にして実現しているのかわかりません。 もし、詳しい方がおられましたら、このモジュールの仕組み、もしくは、自サイトに導入する方法をご教授頂けたらと思っております。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPを使って検索エンジンにひっかかる商品の一覧

    商品の一覧をするようなページを作りたいと思っています。 (ショッピングサイトの買い物かごのないバージョンのような) また、HTMLが全く分からない人がフォームから商品データをいれたらページに反映されるようなものを作りたいんです。 そのため、(MySQLを使って)データベースにあらかじめ商品データを入力し、そこからPHPで要求された商品データをひっぱってくるような仕組みを作ろうと思っています。 しかし、PHPでデータベースからデータを引っ張ってこようとすると、動的なサイトのため検索エンジンにひっかかりませんよね? 静的にみせるにはどうしたらよいのでしょうか? PHPとMySQL以外でもいいので何か良い方法があったら教えてください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • MySQLへのアクセスは極力減らした方が良い?

    最近、PHPとMySQLを勉強してまして、この二つを組み合わせてブログっぽいものでも作ろうかと思っています。 ブログが本来どういう仕組みなのか分かりませんが、日付やタイトルや記事をMySQLのデータベースに保存しておき、各ページはPHPで表記し、アクセスがあるたびにPHPからデータベースにアクセスして記事を呼び出してHTMLとして出力するという形にしようと思っていました。 ただ、いろんなブログを見てみると、拡張子がhtmlでphpのものはほとんど見かけませんし、ブログではありませんがカウンタなどを作るときにアクセスがあるたびデータベースにアクセスするような作り方をする奴はゆるさんみたいなことを、別の質問での回答で見かけた記憶があります。 もしかして、MySQLなどのデータベースには極力アクセスしない形で作った方が良いのでしょうか? 訪問者が記事にアクセスするたびにデータを読みに行ってhtmlで出力するより、あらかじめ記事を書いたときにhtmlファイルとして出力しておいた方が良いとか? ただ、記事表示だけでなく、PHPのアクセス解析などを使ったりしたいので、どのみちphpファイルで作るしかありません。 完全にhtmlだけにできるなら最初からhtmlが良いと思いますが、結局phpも混ぜるなら最初から記事の表示まですべてPHPからデータベースへアクセスしてという形の方が良いのかとも思ってしまいます。 ブログの記事にしろ、アクセス解析にしろ、訪問者が来るたびにデータベースにアクセスするような作り方は避けた方が良いですか? サーバーはロリポップを借りようと思ってますが、こういう安いレンタルサーバーだと速度とかあまり変わらない?

  • MySQLをPHPで操作

    今、ヤフーのようなログインシステムを作ろうとしているものです。 ここでお世話になりながら、データベースをPHPで操作してログインシステムを作ればいいということは分かったので、PHPの書き方とMySQLの仕組みを勉強したところです。 しかし、MySQLでPHPを操作する方法に躓いてしまい、なかなか進みません。 教えてください。

    • ベストアンサー
    • MySQL
  • PHPでBBSを作りたいのですが・・・。

    初心者の初心者です・・・。 使っているサーバーがPHPが出来るので、意外と簡単と噂のPHPを勉強しています。 今使っている本はMYSQLなどのデータベースと関連付けているもので、サーバーではMYSQLは使えないそうなのです。 データベースがなくても、なにやら空のファイルを作ってそこにログを蓄積、HTMLとして出力すればBBSは出来るらしいのですが、じっさいPHPのプログラムの中ではどういった文を書けばよいのでしょうか・・・。 配布されているスクリプトのソースを何回かみて、なんとなく・・・これかなー??みたいのはわかるのですが、完成されたプログラムは長いし複雑すぎてちょっと辛いです。お願いします、助けてください(;;) たとえば、フォームに入力した1文字を送信ボタンのようなものを押すことで、ページに出力。 ログを残しながら次々に出力できるようにするプログラムの例とかを教えていただけるとうれしいです。

    • ベストアンサー
    • PHP

専門家に質問してみよう