ファイルに保存もいいですが、複数人での登録や更新、そして検索を考えるとデータベースとは比較できないほど、やれることは少ないです。
せっかく、プログラム言語を使うならデータベースも絡めて利用した方が、スキルアップにも繋がりますので、ぜひやってみてください。
今回、利用するのはPDOと呼ばれるものです。
PDOは「PHP Data Objects」の略で、MySQLだけではなくOracleやPostgreSQL、SQLiteなど様々なデータベースの利用が可能です。
接続方法
PDOを利用してデータベース(MySQL)に接続するには、以下の記載を行うだけで可能です。
<?php
$dsn = 'mysql:dbname=sample_database;host=localhost;port=3306';
$user = 'user';
$password = 'password';
try {
$conn = new PDO($dsn, $user, $password);
} catch (Exception $ex) {
echo $ex->getMessage();
}
$dsnについては、MySQLの場合の記述ですが、他のデータベースの場合は以下のような記述となります。
PostgreSQL
$dsn = 'pgsql:dbname=sample_database;host=localhost;port=5432';
ファイルベースで利用可能なSQLiteの場合には、$dsnは以下のような記載となります。
SQLite
$dsn = 'sqlite:sample_database';
Oracleの場合の$dsnについても、記載しておきます。
※tnsnames.oraに設定がある前提です。
$dsn = 'oci:dbname=sample_database';
切断方法
データベースから接続を切るのは、接続するときよりも簡単です。
以下のコードだけでデータベースからの接続を切ることが可能です。
<?php
$dsn = 'mysql:dbname=sample_database;host=localhost;port=3306';
$user = 'user';
$password = 'password';
try {
$conn = new PDO($dsn, $user, $password);
} catch (Exception $ex) {
echo $ex->getMessage();
}
unset($conn);
接続する際に作ったインスタンス(new PDOにて作成された)である$connを、unsetするだけでデータベースの接続を切ることが出来ます。
接続エラーの場合
PDOでは、インスタンス作成(データベースへの接続)やSQL実行時のエラーをExceptionとして返します。
catchの個所で、Exceptionのままでも拾うことは可能ですが、PDOのExceptionだけを拾いたい場合には、以下のようにしてください。
<?php
$dsn = 'mysql:dbname=sample_database;host=localhost;port=3306';
$user = 'user';
$password = 'password';
try {
$conn = new PDO($dsn, $user, $password);
} catch (PDOException $ex) {
echo $ex->getMessage();
} catch (Exception $ex) {
echo $ex->getMessage();
}
unset($conn);
このようにすることで、PDOで発生したExceptionはcatch(PDOException $ex)で拾い、それ以外のExceptionはcatch(Exception $ex)で拾うことが可能です。
コメント
[…] PHPからデータベースへ接続するhttps://blog.code4u.org/archives/1575 […]