この記事は、「【連載】初めてのWindows用Laravel 5.7開発環境構築入門」の孫記事です。環境などの条件は、親記事をご覧ください。
この記事は、「XAMPPでPHP+MariaDB(MySQL互換)環境を構築する 2018年12月版」の子記事です。
XAMPPではMariaDBがMySQLと表示されているため、記事タイトルでは併記しています。
今回はXAMPP上で動作するPHPのプログラムからMariaDBを操作するところまで進めます。
テストアプリでは、mycatsというテーブルを作り、その中に登録した猫の名前をWebサイトの画面に表示することにします。
MariaDBにデータベースを追加する
HeidiSQLを開いて、localhostに接続します。
Localhostを右クリックし、新規作成→データベースを指定します。
今回はテスト用データベースの名前をphptestにします。
名前にphptestと入力し、照合(文字エンコーディング)にutf8mb4_unicode_ciを選択します。utf8mb4_unicode_ciは日本語だけでなく多言語を取り扱うために利用されるもので、Laravel 5.7のデフォルトエンコーディングです。
テーブルを追加する
phptestデータベースを開いた状態で、右ペインの空白部分を右クリックし、新規作成→テーブルと進みます。
今回作成したいテーブル名「mycats」を入れて、次にカラムを追加するために追加ボタンを押します。
最初のカラムはIDにします。IDはプライマリキーにします。
追加されたカラムの名前をidとして、NULLを許可のチェックを外します。
idカラムをプライマリキーにするため、idカラムを右クリックし、新しいインデックスの作成→PRIMARYと進みます。
これにより、インデックスタブ内に、PRIMARY KEYとしてidが登録されます。
また、idカラムの一番左にはプライマリキーアイコンが付きます。
次に猫の名前を入れるnameカラムを作成します。追加ボタンを押し、カラムの名前をnameとし、データ型にVARCHARを選択して、デフォルト値を「Unknown」とします。
これでphptestデータベースにmycatsテーブルが作成されました。
テーブルに猫を登録する
作ったテーブルmycatsを選択し、データタブを開いて、「テーブルに行を挿入」ボタン(+ボタン)を押します。
最初の猫の情報として、idに1、nameにDidiと入れます。
同様に、2匹めの猫の情報としてidに2、nameにFediと入れます。
終わったら、HeidiSQLは閉じてOKです。
PHP側でMariaDBの猫テーブルを読むコードを作成する
Visual Studio Codeでinfo.phpを開きます。
以下のように書き換えます。
<?php
echo "Hello world";
$test = 123;
echo "$test points get!";
$mysqli = new mysqli('localhost', 'phpuser', 'php', 'phptest');
if($mysqli->connect_error){
echo $mysqli->connect_error;
exit();
} else {
$mysqli->set_charset("utf8mb4");
}
$sql = "SELECT id, name FROM mycats";
if ($result = $mysqli->query($sql)){
while ($row = $result->fetch_assoc()){
echo $row["id"] . " : " . $row["name"] . "<br>";
}
$result->close();
}
$mysqli->close();
phpinfo();
ポイントだけ見ていきます。
$mysqli = new mysqli('localhost', 'phpuser', 'php', 'phptest');
ここではMariaDBに接続しています。
第1パラメーターはローカルホストのMariaDBに接続することを指定しています。
第2パラメータと第3パラメータは、MariaDBにアクセスするユーザーIDとパスワードです。
第4パラメータは接続先データベース名なので、猫テーブルを設置したphptestを指定しています。
$mysqli->set_charset("utf8mb4");
接続が成功したら、文字エンコードをutf8mb4にするよう指定しています。これをやらないとうまく通信できないことがあります。
$sql = "SELECT id, name FROM mycats";
猫を読み出すSELECT文を書いて、あとは実行して、取得できたレコードすべてを画面に表示しています。
結果は以下のように表示されます。
改行などを気にせず出したので1匹目が前の行の続きになってしまっていますが、まあOKとしましょう。笑
とにかく、PHPからMariaDBにアクセスして動作するプログラムを実行することができました。