[unity2019.LTS]最も簡単なデータベース通信 - (3)PHP でテーブルを取得

前回の記事はこちら →
(1)サーバーにデータベースを用意
(2)データベースにテーブルを用意

(1) で作成した4つの値を用意する

データベースホスト名、データベース名、ユーザー名、パスワード

これらが必要になります。具体的な場所は (1) の記事を参照してください。

プログラムを書く

以下の部分を自分の情報に置き換えてください。ファイル名は select.php とします。

[[データベースホスト名]]
[[データベース名]]
[[ユーザー名]]
[[パスワード]]

<?php

{
	select();
}

function select()
{
	try
	{
		$dsn = 'mysql:host=[[データベースホスト名]];dbname=[[データベース名]];charset=utf8mb4';
		$username = '[[ユーザー名]]';
		$password = '[[パスワード]]';

		$pdo = new PDO($dsn, $username, $password);
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

		$stmt = $pdo->prepare('SELECT * FROM test_table');
		$stmt->execute();

		while ($row = $stmt->fetchObject())
		{
			echo $row->field_name. ",". $row->field_count. "\r\n";
		}
	}
	catch (PDOException $e)
	{
	    echo "error: ". $e->getMessage(). "\n";
	    exit();
	}
}

?>

FTP にアクセス

select.php をサーバーにアップロードするために、FTP を設定します。
以下は、既に設定している人は不要かもしれません。
なお、サーバーは Conoha、FTP のアクセスには Filezilla を使用しました。
別のサーバー、FTP クライアントを使っている場合は適宜読み替えてください。

FTP アカウントを作成

まず、Conoha の FTPサーバー の情報をメモしておきます。

次に FTP アカウントを作成します。
Conoha のコントロールパネルで サイト管理 - FTP - +FTPアカウント

Filezilla でアクセス

Filezilla に情報を登録し、アクセスします。ファイル - サイトマネージャ

アクセスが成功すると、このようになります。

FTP にアップロード

私は create-forever.games というドメインで WordPress を運営しているので、試しにその下にファイルを置いてみます。(他の場所でも、もちろん構いません)

public_html/create-forever.games/test/select.php

にファイルをコピーします。

この記事が載る頃にはファイルは消えておりますので、皆さまがアクセスすることはできません…。

実行してみる

ブラウザで実行します。
Japan~India までの値が全て表示されました!

https://www.create-forever.games/test/select.php

データベースの値を変えて、もう一度試してみる

全て 0 はあってるの…? と不安になるので、field_count の値を変えて試してみます。

無事変更した値になりました!

PHP の簡単な解説

解説というのもおこがましいですが、本当にざっくりと説明してみます。

接続

$dsn = 'mysql:host=[[データベースホスト名]];dbname=[[データベース名]];charset=utf8mb4';
$username = '[[ユーザー名]]';
$password = '[[パスワード]]';

$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

ここでデータベースにアクセスしますね? と問い合わせをしています。
電話でいえばプッ、プッ、プッ、プルルルル…ガチャの間でしょうか。
電話番号を間違えれば繋がらないのと同様、データベースホスト名、データベース名、ユーザー名、パスワード、どれか一つでも間違えていた場合はアクセスができません。

テーブルにアクセス

$stmt = $pdo->prepare('SELECT * FROM test_table');
$stmt->execute();

test_table のデータを全部ください! とお願いしています。
テーブルに大量のデータがある場合、この問い合わせはかなり危険なものになるかもしれません。
(fetchObject で1行ずつ取得しているので、そこまででもないかもしれませんが…)

1行ずつデータをもらう

while ($row = $stmt->fetchObject())
{
    echo $row->field_name. ",". $row->field_count. "\r\n";
}

fetchObject で1行ずつのデータが $row に入ります。
echo でその中身を出力しています。

PDO については、こちらの記事がとても詳しかったので、とても助かりました。

php4 くらいの頃? に思いきり mysql_query 的なのを使ってた気がします。SQL インジェクションが騒がれ出した頃でしたかね…。

次の記事では、php から、データベースの値を変更します。

Recommended Blog

(1)サーバーにデータベースを用意
(2)データベースにテーブルを用意
(3)PHP でテーブルを取得
(4)PHP でテーブルを更新
(5)unity で PHP を呼び出す

返信を残す

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

CAPTCHA