【ラズパイでWEBアプリ開発】PHP を使って、データベース(MySQL)を操作する方法

MySQL
けんろう
けんろう

ラズパイで、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)を使う方法を紹介しました。

コメント

タイトルとURLをコピーしました