Hobby Lab 趣味のモノ作り実験のサイトです。
Software Server Windows XAMPP NotePHP
1.PHP DBの書き方

Sf:Server 関係
SfS:レンタルサーバー
 CORE-X
SfS:Windowsサーバー
 XAMPPの概要と導入
 Note XAMPP
 Note XAMPP Err
 Note Apache
 Note PHP
 Note MyQSL
Sf:OS関係
SfO:Mint 関係
 PCへMint導入
 アプリ導入
 その他1
 アイコンを作る
SfO:Ubuntu 関係
 PCへUbuntu導入
 アプリ導入
SfO:RaspberryPi 関係
はじめに
 RaspberryPiへOS導入
 アプリ導入
 Programming
シェル・コマンド関係
 LXTerminal
 sed
 i2ctools
I/O・アプリ関係
 RealVNCとViewer
 IO動作確認
 MySQL
 Python
 raspberrypiハード
Sf:Programming関係
C 関係
 C言語でプログラムミング
Python 関係
はじめに
 RaspberryPi開始
 Windows開始
共通事項
 プログラミングNote
 パッケージ導入 pip
 標準ライブラリ
 Serialライブラリ
 SMBusライブラリ
HTML関係
 開始とNote
Sf:IDE 開発環境
SfI:STM32
 STM32CubeIDEでプログラム
 HALと直接レジスター操作の速度
SfI:CH32
 MounRiver Studioでプログラム
SfI:Arduino
各ボード毎の設定
 Uno 設定
 Mega2560 設定
 DUE_CH340 設定
 ESP_WROOM02 設定
 ESP12F_D1mini 設定
 ESP32 設定
 CH32V 設定
ライブラリー
 OneWire使い方
その他
 日本語リファレンス(外部リンク)
 WiFi Macアドレスを調査
Sf:AP アプリ関係
SfA:エディタ
SfA:回路図CAD
SfA:回路シミュレータ
 シミュレーションの設定
 色の設定
 電源設定設定
SfA:リモートソフト
Sf:Pt プロトコル関係
SfPt:MODBUS
Sf:Otgers その他

1.PHPデータベースの書き方

PHPでデータベースに接続するにはAPIとして mysqli を使用してオブジェクト型で記載することにします。

(1)APIの種類

MySQLは現在Ver8.xになっていますが、PHPからMySQLに接続するためのAPIは3種類(mysql,mysqli,PDO)が有りました。
しかしmysqlについてはセキュリティーや書き方の問題点からVer5.xでは保守サポートのみ、Ver7.xからは保守も終了しているので、mysqlについての使用は非推奨になっています。
このmysqlの代替えになったのが、mysqli です。
mysqli の説明URL https://www.php.net/manual/ja/mysqli.overview.php
PDOの説明URL https://www.php.net/manual/ja/intro.pdo.php
ではmysqliとPDOどちらを使用した方が良いか?

(2)API mysqli と PDO の比較

PDO は PHP Data Objects の略で、どのデータベース(MySQL 、 PostgreSQL 、 SQLite)を使っているかを隠蔽してくれるものです。 PDO を使うことで、どのデータベースを利用する場合でも同じ関数を使うことができますので、もし将来データベースを変更することがあっても、 PDO オブジェクトを作成する時に指定したパラメータだけを変更すれば良いことになります。
逆に言えば特殊なコマンドは対応できていないこともあると言う事です。
データベースの制御文の書き方がオブジェクト型と言うこともあり、情報も多いPDOを使用して見ようと思います。
なれてから、MySQLで特殊な制御が必要になれば、mysqliを使用して見たいと思う。

(3)データベースの制御文について

昔は手続き型と言う方法で記載されていたが、現在はオブジェクト型が主流になっており、その比較を下記に記載した。

ただし、昔の手続き型としてmysqlだったので、比較はそれを引き継いでいるmysqliで記載した物の比較となるので注意ください。

手続き型
$mysqli = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno($mysqli)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$res = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

オブジェクト型
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $res->fetch_assoc();
echo $row['_msg'];

オブジェクト型については、C言語でも使用されている。なお先のPDOでも使用されているので、特に支障なればオブジェクト型で記載して行こうと思います。
 mysqli の概要説明のURLは https://www.php.net/manual/ja/book.mysqli.php
更新日 2025/11/25 19:35  管理者 平林 剛Hirabayashi Takeshi