![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
公開されてるソースがあるのでそれを使えばいいんですが、プログラミングを学んでみたいという目的もあって、PHPの勉強を始めたところです。
で、あるサイトで学んでるんですが、その中でMySQLというものも出てきました。
データベースの勉強もここからが初めてで、四苦八苦しながらもなんとか読み進めていったんですが、今度はPHPとデータベースを組み合わせてブログを作ってみましょうという話になりました。
もともとブログや掲示板を作りたくて勉強を始めたので願ったり叶ったりなんですが、ここで一つ疑問が。
ブログってデータベース使ってましたっけ?(^_^;
公開されてるソースの解説を見てみると、特にデータベースが必要というような表記もなく、PHPとHTMLとスタイルシートだけで作ってるように見えます。
なので、もしかしたら余計な方向へ行こうとしてる?と、このままこのサイトで勉強を進めて良いものか不安になってしまいました(^_^;
よく分かってない素人考えとしては、ブログの仕組みってPHPでHTMLファイルを作ってるだけというイメージなのですが、データベースは必要なのでしょうか?
今はseesaaブログで借りてブログを書いていますが、仕組みが見えてないだけで、こういうブログもデータベースを使ってる?
だとしたら公開されてるブログのソースは、データベースを使える人限定ってことになりますよね?
ブログを作るのにデータベースは必要なのか?
また、必要ないにしても、データベースを使った方が良い面があるのか?
どうなんでしょうか?
No.4ベストアンサー
- 回答日時:
拡張子が「.html」などであっても、ブログ運営においてデータベースはほとんどのケースで使われています。
URLは見かけ上の存在でしかない場合があります。以下に例を示します。【例】 (URLエンコードは省略しています)
1. 以下のようなURLでユーザがアクセスしてくる
http://blog.example.com/programming/PHPはじめました!.html
2. サーバー側でリクエストURLが書き換えられる
http://example.com/blog.php?category=programming …はじめました!
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
ご回答ありがとうございます。
あんまりいろんなシステムを絡めると、表示速度が遅くなるかも知れないと懸念してましたが、はっきり言って個人ブログ程度なら、そんなに影響なさそうです。
何より検索面やセキュリティ的に強固になるのは魅力的。
ファイルを生成して置くだけのシステムで、その辺をどうするか想像すらできてませんでしたから(^_^;
手抜きをしたいならレンタルで借りれば良いわけだし、どうせ勉強するなら皿まで喰らうつもりでやってみたいと思います。
No.5
- 回答日時:
書いた記事を格納する場所が必要なんでデーターベースはブログでは必ず使っていると思います。
PHPとデーターベースの勉強を始めるのであれば是非データーベースを使ってブログを構築してくださいね。
データーベースを使った方がいいのは大量のデーターを格納しても安全性が高いのとデーターベースはSQLという言語が使えて検索機能を作る時に便利です。
ご回答ありがとうございます。
やはり共通する意見として、検索の話がありますね。
実際、検索を考えたときに、サーバーにファイルを置くだけだとどうすれば良いのか分かりませんでしたが、MySQLが少し分かってくると、だいたいこんな感じでやれば良いのかな?ぐらいは想像できるようになりました。
併せて勉強してみたいと思います。
No.3
- 回答日時:
DBMSの利用は必須ではありません。
普通のファイルへのデータ保存でもブログシステム程度なら作ることは出十分出来ます。ただ、今回の目的がプログラミングの学習のためと言うことなので、どうせならDBMSの勉強もした方が良いと思いますので、DBMSを使った方が良いでしょう。
DBMSの勉強はしたくないと言うことなら、一般ファイルで作っても良いです。
ご回答ありがとうございます。
正直、データベースは想像すらしてなかったんで面倒くさいというのが本音なんですが、別に仕事にしてるわけでもなく、時間はある方なので試しに勉強してみたいと思います。
No.2
- 回答日時:
>ブログってデータベース使ってましたっけ?(^_^;
WordpressとかMovableTypeとかを「使ったこと」はありませんか?
ほとんどのブログシステムはデータベースの利用が前提です。いろいろな機能(カテゴリ指定での一覧とかキーワード検索とか)を実現したり処理速度を(データが増えても)落とさないようにするために必須と言ってもいいです。
細かい設定はインストーラがやってくれたりもしますので、「ブログを利用する」だけならデータベースの知識は要りませんが「システムを作る側」はそうはいきませんね。
ご回答ありがとうございます。
実はその二つ、聞いたことはあっても使ったことはないんですよ。なんだか難しそうだったんで(^_^;
ブログにおいてのPHPの立場って、各ページのHTMLファイルを作るだけかと思ってました。
PHPが分かるようになってくると、なんだかそれも違うことに気づくことができるようになりました。
データベースを使った方が楽そうですね(^_^;
No.1
- 回答日時:
投稿された記事やコメントを何らかの形で管理しなければいけません。
方法としては、記事やコメントをDBに登録して管理する方法と、テキストファイルで保存して管理する方法が考えられます。
件数が少ないうちはファイルでもいいでしょうが、件数が多くなるとファイルでは管理しきれなくなる可能性ができてます。
また、記事を検索する場合はDBを使っているほうが簡単に検索ができます。
ご回答ありがとうございます。
PHPを使ってhtmlファイルを作成すれば良いだけかと思っていましたが、確かに検索など考えるとDBを使った方が良いかもしれませんね。
まだ覚えたてで「かもしれない」ぐらいでしか分かりませんが(^_^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- IT・エンジニアリング バックエンドエンジニアに転職 2 2022/04/07 00:51
- MySQL [1000地域 × 10カテゴリー = 1万件のテーブル]!グループ化? 1 2023/06/14 23:56
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- gooブログ gooブログへのコメント投稿について 1 2023/05/21 03:52
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(ブログ) ブログの作成 2 2023/06/25 09:11
- その他(ブログ) 【ブログ:SEO】ドメインパワーが強いのはどちらでしょうか 1 2022/04/25 23:08
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
Batch: フォルダ内の特定のファ...
-
特定のエクセルファイルを起動...
-
VBAでCSVファイルが使用中かど...
-
共有フォルダに誰が何にアクセ...
-
(Excelマクロ)datファイルをエ...
-
Excel VBA 処理後データが重た...
-
ファイルの途中に文字列を挿入
-
access関数を説明できる方いま...
-
社内Excel共有ブックでの保存ト...
-
mdbファイル フォームを開くと...
-
Access VBA を利用して、フォル...
-
エクセルについて コンテンツ...
-
AccessVBAで作成したExcelファ...
-
excelを共有ファイルにすると行...
-
tmpファイル なぜできる?削除...
-
【VBA】異なる行だけを抜き出す...
-
月が変わったら自動でシートが...
-
HTMLとデータベースの連携
-
特定のフォルダに入れたファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
共有フォルダに誰が何にアクセ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
Access VBA を利用して、フォル...
-
tmpファイル なぜできる?削除...
-
VBAでCSVファイルが使用中かど...
-
AccessVBAで作成したExcelファ...
-
月が変わったら自動でシートが...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
(Excelマクロ)datファイルをエ...
-
ファイルの途中に文字列を挿入
-
相手のPCにVBAからメッセ...
-
mdbファイル フォームを開くと...
-
Excel VBA 処理後データが重た...
-
社内Excel共有ブックでの保存ト...
-
拡張子が「cda」のファイルを聞...
-
事務の派遣で働いています。多...
-
【VBA】異なる行だけを抜き出す...
おすすめ情報