今回はウェブシステムで必須のデータベース接続の説明です。
データベースとは大量のデータの集まりです。
その大量のデータの中から特定のデータを抜き出したり、特定の項目を書き換えたりする処理を行います。
例えばYahooのに会員登録していて、ログインするとあなたの情報だけが閲覧・変更できるようになっていますね。絶対に貴方の情報だけです。他人の情報が閲覧・変更出来てはいけないのです。データベースにアクセスするプログラムはもっともセキュアなものでなければなりません。
以下で勉強するのは、データベースの概念を学ぶ目的で書いていますので、安全性はまったく考慮されていません。公開目的のシステム構築の際は、様々な安全策を講じて作らなければなりません。
データベース接続プログラムを学ぶ
データベースを作成する
先ずはテスト用のデータベースを作ります。
WordPressインストールで勉強した時を同じように、http://localhost/phpmyadmin
にアクセスしてphpMyadminを開きます。
データベース名で重複しなければ何でも構いませんが、今回は”sampledb”とします。
データベースを作成したら、実際にそのデータベースにデータを入れるテーブルを作成します。
データベースに関して詳細な説明をしていると長くなるので、ご自身で勉強して下さい。
テーブルは”member”という名前で、4カラムを指定して作成します。
サンプルプログラムの為にデータを1件手動で登録します。
”SQL”タブへ移動して以下のように打ち込んで”実行”をクリックします。
INSERT INTO `member`(`no`, `name`, `address`, `mail`) VALUES ('1','東京太郎','東京都目黒区','test@localhost');
データベースにアクセスするためにはSQLという知識が必須です。
今回使用するデータベースはMySQLですが、他のデータベースと多少違いがありますので、扱うデータベースの知識が必要です。
また、今回使用しているPHPバージョンは8.1.6です。PHP7で廃止になった関数は使用できません。
データベースに接続してデータを読み込む
それでは早速コーディングしていきます。
前回使用したhttp://localhost/test/index.phpを開きます。
そのファイルに以下のようにコーディングします。
<?php
define("SITENAME","サンプルサイト");
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<style>
body {
background: #fff;
font-size: 12px;
text-align: center;
}
p {
color: red;
}
</style>
</head>
<body>
<div id="container">
<header>
<h1 ><?php echo("サイト名は " . SITENAME); ?></h1>
</header>
<main>
<section>
<h3>phpテスト</h3>
<p>
<?php
// データベースの選択
$mysqli = new mysqli("localhost", "root", "", "sampledb");
if(!$mysqli){
die("接続できませんでした");
}
$sql = "SELECT * FROM member";
$result = $mysqli->query($sql);
foreach ($result as $row) {
echo $row['no'] . ":" . $row['name'] . ":" . $row['address'] . ":" . $row['mail'] . '<br />';
}
mysqli_close($mysqli);
?>
</p>
</section>
</main>
</div>
</body>
</html>
// データベースの選択
$mysqli = new mysqli("localhost", "root", "", "sampledb");
if(!$mysqli){
die("接続できませんでした");
}
左の命令でデータベースに接続します。
new mysqli(“ホスト名(接続ポート)”, “ユーザー名”, “パスワード”, “データベース名”);
ホスト名:localhost
ユーザー名:root
パスワード:(xamppではノーパスワードですのでブランク)
データベース名:作成したデータベース名(サンプルではsamoledb)
成功すると$mysql変数にデータベースオブジェクトが格納されます。
$sql = "SELECT * FROM member";
$result = $mysqli->query($sql);
foreach ($result as $row) {
echo $row['no'] . ":" . $row['name'] . ":" . $row['address'] . ":" . $row['mail'] . '<br />';
}
$sql変数にmemberテーブルのデータを全件呼び出すSQL文を指定します。
$mysqli->query($sql);
このクエリーが実行されると$result変数にデータが配列で格納されます。
後はforeach文で$result内のデータ全件を出力します。
mysqli_close($mysqli);
処理が完了したら使用したデータベースをクローズします。
1.データベース接続
2.データ処理
3.データベースクローズ
です。データベースクローズは忘れがちですので注意して下さい。
どんどん難易度が上がっていきますが、めげずに頑張って下さい。
次回は会員登録フォームを作ってデータベースに登録までチャレンジしましょう。
本格的なプログラムになってきますので、細かな説明は割愛するかもしれません。
htmlタグの”<form>”を使用しますので、予習しておいてください。
コメント