Software:XAMPP 元に戻る

PHP Note 2024/7/2

本文目次

本文以外目次
1.PHPデータベースの書き方



本   文

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

[目次に戻る]