これから数回に分けて「PHP」と「MariaDB(MySQL)」についてまとめて行こうと思います。
ゴールは簡単なSNS(掲示板的な)作成として、PHPやデータベースの基礎知識を綴ってまいります。
それでは今回は、「PHPとデータベースの仕組みと役割について」を簡単にまとめたいと思います。
※初心者的視点での内容になりますので、PHPの入門的位置づけで、踏み台として頂ければ幸いです。
PHPとMariaDB(MySQL)について
PHP
PHPはプログラミング言語の一種で、主に「HTML」に埋め込んで記述するスタイルになります。つまり、WEBサービスで主に利用されています。
通常のHTMLと異なる点は、クライアントのリクエストに対して「動的」な情報を返せるところです。
例えば、PHPにはクライアントがどのブラウザでアクセスしてきたか判別する記述があります。
それをHTMLに埋め込めば、アクセスするブラウザによって表示を変更したりできるのですね。
1 2 3 4 5 6 7 8 |
<body> <?php //ここにブラウザを判定するphpの記述 ?> </body> </html> |
つまり、「処理に応じて異なるページを表示させる」のが動的なページであり、それを可能にするのが「PHP」です。HTMLを操作できる、これが1つの特徴です。
HTMLは常に一定のレスポンスになるので、「静的」と呼ばれています。
もう1つの特徴としては、後述する「データベース」の操作が出来る点です。
例えばブログ、「WordPress」では、投稿した記事が自動的に降順に積み重なって行くのは、データベース(MariaDB)に保存された投稿記事がブログのトップページにある「PHP」によって紐づけされている為です。
1 2 3 4 5 6 7 8 |
<body> <?php //ここにデータベースを操作する記述 ?> </body> </html> |
このように、PHPはデータベースから情報を取り出したり、また保存したりと、データベースの操作が可能なのです。
静的なHTMLのページでは、記事を投稿するたびにトップページのHTMLの変更やページの追加が必要になりますが、動的なPHPのページであれば、前途したようにトップページに投稿記事を降順で配置する記述を埋め込めば、記事の投稿だけで良しとなります。
ちなみにPHPを埋め込んだHTML文章は、拡張子を「.php」にする必要があります。
また、phpでwebアプリを開発するには「PHP処理システム(phpの言語を使えるようにするもの)」「webサーバー」や後述する「データベース」が必要になります。
MariaDB(MySQL)
オープンソースのデータベースで一番有名なものに「MariaDB(MySQL)」があります。
以前まではMySQLと呼ばれていましたが、最近はMariaDBと呼ばれています。しかし操作に関してはMySQLとさして変わりはないみたです。
データベースは、管理、活用ができるように集めた多くのデータ、またそれを処理するソフトウェアの事を指します。
構成としては、「データベースサーバー」があり、そのなかに「データベース」があり、その中に「データ」が存在する形になります。
※その辺りの詳細は次回の「環境構築」でまとめようかと思います。
データベースに入るデータは、エクセルのような「表」になっていて、それを「テーブル」と呼びます。
縦の列を「カラム」と呼び、横の行を「レコード」と呼びます。下図のような感じですね。
No | name | comment | time |
1 | taro | HAHAHAHA! | 2020/10/26 8:00 |
2 | jiro | UNKOTiNTIN! | 2020/10/26 8:01 |
3 | saburo | HAHAHAHA! | 2020/10/26 8:02 |
表のようなデータの構造(テーブル)を作成するには、MariaDBを直接操作する必要があります。
基本、Shellでの操作になりますが、XAMPP等のアプリではGUIで作成する事も可能です。
作成の手順は、①データベース作成(データベース名)②テーブルの作成(任意の項目名をつけてテーブル名をつける)です。
ちなみに上の表だと、1行目が作成したテーブルの項目になります。
2行目以下のレコードに関しては、phpから送られてきた結果が保存されていきます。
このように、データベースを作成し、その中にテーブルを作成しておくと、phpから指定したデータベースのテーブルへデータの書き込み、また読み込み等が行える訳です。
データベースもphpと同じく、WEBアプリ開発で利用するには「PHP処理システム(phpの言語を使えるようにするもの)」「webサーバー」「データベース」が必要になります。
フロントエンドとバックエンド
フロントエンド
プログラミングする領域は大きく分けて「フロントエンド」「バックエンド」に分かれます。
フロントエンドは、主にユーザーが見える部分に該当する「html/css」「javascript」等が該当しますね。
WEBサイト制作者等がこっちになります。花形?のポジションでしょうか。
バックエンド
変わってバックエンドはユーザーから見えない部分、つまり「サーバーサイド」の開発者になります。
フロントエンドの土台となる「サーバー」に関する部分なので、とても重要です。各種サーバーの環境構築はもちろん、設定、またネットワークに関する知識も必須でしょう。
php/mariaDBはこっち側に該当します。
フロントエンドに比べると難解に感じるうえに、どうしても裏方的な印象があるため、人気ではフロントエンドに劣っている気がします。
ですが、こっち側の知識もある程度知っておくと技術の幅がかなり広がるはずですので、最低でも基礎的な事は知っておいた方が良いと思います。
それでは、次回は「php/MariaDBの環境構築」と「phpの基本的な文法」についてまとめようかと思います。