前回の記事はこちら →
(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 を呼び出す