ラズパイで、WEBアプリを開発できます。
WEBアプリ開発に必要な、PHP、データベース(MySQL)の使い方を紹介します。
PHPで、MySQLを操作する方法を紹介します。これにより、自分のWebサービスでデータベースを利用できるようになります。
注意
PHPは、そのバージョンの違いによって、使用できる関数に違いがあります。
例えば、PHP5.5.0以前では、mysql_connect関数が定義されていましたが、PHP(7.0以降)は、この関数が削除されています。
ネットで、「MySQL PHP」 で検索すると出てくる情報は、多くがPHP5.5.0以前のものが多く、私は知らずに、はまりました。
私の記事では、最新のPHP仕様を紹介します。
はじめに
本章は、LAMP環境がインストールされていることが前提となります。
LAMP環境がインストールできていないなら、以下のページを見て、インストールしてください。
PHPファイルを実行する方法
これから紹介するサンプルコードを動かすには、以下の手順を参照してください。
①PHPファイルを作成する
エディタを開いて、phpファイルを作成する。
$ sudo nano /var/www/html/sample.php
sample.phpは、適当な名前で、大丈夫です。
nanoエディタが開いているので、ソースコードをコピーして、貼り付ける。
その後、以下の手順で保存します。
CTRL + O で書き込み保存です。
CTRL + X でエディタから抜けます。
②ブラウザで、自作PHPファイルを表示する
ブラウザーを開いて、以下のURLを入力します。
http://raspberrypi.local/phpinfo.php
データベースへの接続
PHPで、データベースに接続するには、new mysqli関数を使用します。
<?php
// 接続
$mysqli = new mysqli('localhost', 'root', 'password', 'mydb');
//接続状況の確認
if (mysqli_connect_errno()) {
echo "データベース接続失敗" . PHP_EOL;
echo "errno: " . mysqli_connect_errno() . PHP_EOL;
echo "error: " . mysqli_connect_error() . PHP_EOL;
exit();
}
echo 'データベース接続成功';
// 切断
$mysqli->close();
?>
このプログラムでは、mydbというデータベースへの接続を試みて、成功したら、その旨を画面に表示するものです。
ここで、
$mysqli = new mysqli(‘localhost’, ‘root’, ‘password’, ‘mydb’);
のパラメータは、以下となります。ご自分の設定に合わせて、修正してください。
‘localhost’ : サーバのアドレス
‘root’ : ユーザ名です。rootでいいです。
‘password’ : rootのパスワードです。
‘mydb’ : 今からアクセスするデータベースです。他ページで作成したデータベースを使うので、mydbとします。
MySQLデータベースにデータを追加する
query関数を使用して、SQLクエリを実行します。
<?php
// 接続
$mysqli = new mysqli('localhost', 'root', 'password', 'mydb');
//接続状況の確認
if (mysqli_connect_errno()) {
echo "データベース接続失敗" . PHP_EOL;
echo "errno: " . mysqli_connect_errno() . PHP_EOL;
echo "error: " . mysqli_connect_error() . PHP_EOL;
exit();
}
// データを挿入する
$sql = "INSERT INTO fruits_table (fruits, value) VALUES ('strawberry', 800)";
$result = $mysqli->query($sql);
if (!$result) {
echo 'INSERTが失敗しました。'.mysqli_error();
}else{
echo 'INSERTが成功しました';
echo "<br/>";
}
//テーブルを確認する
$sql = "SELECT * FROM fruits_table";
$result = $mysqli->query($sql);
if( $result ) {
var_dump($result->fetch_all());
echo "<br/>";
}
// 切断
$mysqli->close();
?>
MySQLデータベースにデータを更新する
SQLクエリを以下のように、UPDATE文に変更すると、データの更新を行えます。
<?php
// 接続
$mysqli = new mysqli('localhost', 'root', 'password', 'mydb');
//接続状況の確認
if (mysqli_connect_errno()) {
echo "データベース接続失敗" . PHP_EOL;
echo "errno: " . mysqli_connect_errno() . PHP_EOL;
echo "error: " . mysqli_connect_error() . PHP_EOL;
exit();
}
// データを更新する
$sql = "UPDATE fruits_table SET value=1000 WHERE id=5";
$result = $mysqli->query($sql);
if (!$result) {
echo 'UPDATEが失敗しました。'.mysqli_error();
}else{
echo 'UPDATEが成功しました';
echo '<br/>'
}
//テーブルを確認する
$sql = "SELECT * FROM fruits_table";
$result = $mysqli->query($sql);
if( $result ) {
var_dump($result->fetch_all());
echo "<br/>";
}
// 切断
$mysqli->close();
?>
MySQLデータベースにデータを削除する
SQLクエリを以下のように、DELETE文に変更すると、データの削除を行えます。
<?php
// 接続
$mysqli = new mysqli('localhost', 'root', 'password', 'mydb');
//接続状況の確認
if (mysqli_connect_errno()) {
echo "データベース接続失敗" . PHP_EOL;
echo "errno: " . mysqli_connect_errno() . PHP_EOL;
echo "error: " . mysqli_connect_error() . PHP_EOL;
exit();
}
// データを削除する
$sql = "DELETE FROM fruits_table WHERE id=5";
$result = $mysqli->query($sql);
if (!$result) {
echo 'DELETEが失敗しました。'.mysqli_error();
}else{
echo 'DELETEが成功しました';
echo '<br/>';
}
//テーブルを確認する
$sql = "SELECT * FROM fruits_table";
$result = $mysqli->query($sql);
if( $result ) {
var_dump($result->fetch_all());
echo "<br/>";
}
// 切断
$mysqli->close();
?>
まとめ
ラズパイで、PHP、データベースソフト(MySQL)を使う方法を紹介しました。
コメント