目次
エックスサーバーにデータベースとユーザーを作成
エックスサーバーにログインしてデータベースの項目からMySQL設定をクリック
「MySQL追加」をクリック
MySQL設定画面にてデータベース名と文字コードを設定、MySQLを追加しておきます。
「次にMySQLユーザ追加」をクリック
MySQLユーザID、パスワードを設定してユーザーを作成します。
データベースとユーザーを作成した直後は以下のようになっているので、作成したデータベースに作成したユーザーを追加します。
↓
phpMyAdminでテーブルを作成、データを手入力

こんな画面が出てくるので「テーブルを新規作成」します。
カラム情報を入力します。以下のような項目を入力しました。
| 名前 | データ型 | 長さ | デフォルト | インデックス | |
|---|---|---|---|---|---|
| id | INT | PRIMARY 自動振番 | |||
| usr | VARCHAR | 100 | |||
| tweet | TEXT | 256 | |||
| time | DATETIME | CURRENT_TIMESET |
IDは主キーにして自動で番号が追加されていく設定(A_Iにチェック)にしています。
投稿日時も自動的に現在日時が入るようになります。
この時エラーが出たりしたんですけど
Incorrect table definition: there can be only one auto column and it must be defined as a key.
翻訳すると
不正な表定義:自動列は1つしかなく、キーとして定義する必要があります。
ちょっと意味がわからない。自動連番の列は主キーとして定義しなきゃいけないと読み取れますが、ID列はすでにそうなってるんですけど。。
よくわからないのでインデックスのPRIMARYのところをいったん外して再設定したらエラーが出なくなりました。
とりあえずこれでデータベースが作成されました。
私たちは画面上のUI操作で簡単にデータベースを作れましたけど、裏では自動生成されたSQL文が走っています。
「構造」タブをクリックすれば作成したテーブルの構造が見れます。
テストデータを入力しておきます
「挿入」タブをクリックして、以下のように入力しました。
IDは自動発番なので手入力しません。
usrには「高杉晋作」と入れて、tweetには「おもしろきこともなきよをおもしろく」と入れました。
time列は自動で日付がはいります。
SQL文を見ることができるのでみておくと
INSERT INTO DB名.テーブル名 (id, usr, tweet, time) VALUES (NULL, '高杉晋作', 'おもしろきこともなきよをおもしろく', CURRENT_TIMESTAMP);となってました。 同様に坂本龍馬も作りました。 「表示」タブをクリックすれば。
いましがた手入力したデータがちゃんとテーブルに入っている事がわかります。
次にPHPを作成してエックスサーバーのDBへ接続してデータを読み込むのをやります。
PHPファイルを作成、DB接続して読み込んでみる
DB情報を入れた外部iniファイルを用意しておきます。 db.ini[dbinfo] host = 'サーバー番号.xserver.jp' dbname = 'さっき作ったDB名' dbusr = 'さっき作ったDBユーザ名' dbpass = 'パスワード'次にtweet_read.phpファイルを作成。db.iniファイルとtweet_read.phpファイルは同階層にしています。
<?php
try {
$ini = parse_ini_file('./db.ini', FALSE);
$db = new PDO('mysql:host='.$ini['host'].';dbname='.$ini['dbname'].';charset=utf8', $ini['dbusr'], $ini['dbpass']);
$sql = $db->prepare('SELECT * FROM blog');
$sql->execute();
} catch(PDOException $e) {
die('エラーメッセージ:'.$e->getMessage());
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>偉人のツイート集</title>
</head>
<body>
<h1>偉人のツイート集</h1>
<table border="1">
<tr>
<th>日付</th><th>名前</th><th>ツイート</th>
</tr>
<?php while ($row = $sql->fetch()) { ?>
<tr>
<td><?php print($row['time']); ?></td>
<td><?php print($row['usr']); ?></td>
<td><?php print($row['tweet']); ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
これをエックスサーバーにアップロードしてブラウザでアクセスすると‥結果がでました。
プログラミング学習を体系的に進めたい人へ

独学で基礎を確認したあとに、質問できる環境や転職・副業向けの学習サポートも比べたい人は、プログラミングスクールの比較記事も参考にしてください。学習目的、料金、受講期間、サポート範囲を分けて見ると、自分に合う学び方を選びやすくなります。




