PHPからデータベースへ接続する

ファイルに保存もいいですが、複数人での登録や更新、そして検索を考えるとデータベースとは比較できないほど、やれることは少ないです。

せっかく、プログラム言語を使うならデータベースも絡めて利用した方が、スキルアップにも繋がりますので、ぜひやってみてください。

今回、利用するのは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からデータベースへ接続する” への1件の返信

現在コメントは受け付けていません。