MySQL PHP RaspberryPi

Raspberry Pi 上で、PHP を使って、データベース ( MySQL )を操作する方法

投稿日:

PHPで、MySQLを操作する方法を紹介します。これにより、自分のWebサービスでデータベースを利用できるようになります。

スポンサードサーチ

■注意

PHPは、そのバージョンの違いによって、使用できる関数に違いがあります。
例えば、PHP5.5.0以前では、mysql_connect関数が定義されていましたが、PHP(7.0以降)は、この関数が削除されています。
ネットで、「MySQL PHP」 で検索すると出てくる情報は、多くがPHP5.5.0以前のものが多く、私は知らずに、はまりました。
私の記事では、最新のPHP仕様を紹介します。

■はじめに

本章は、LAMP環境がインストールされていることが前提となります。もし、LAMP環境がインストールできていないなら、以下のページを見て、インストールしてください。


Raspberry Piに LAMP(Apache、MySQL、PHP、Perl、phpMyAdmin)の Webサーバを構築する方法

スポンサードサーチ

■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();
 
?>

以上です。

-MySQL, PHP, RaspberryPi
-,

Copyright© ラズパイの実 , 2020 All Rights Reserved Powered by STINGER.