PHPプログラミング

BLOG

データベース PDO その2

PDOで使用できるデータベースを調べる

  • このエントリーをはてなブックマークに追加

PDOで使用できるデータベースは環境によって異なります。「使用したいデータベースが使えなかった!」ということがないよう、その環境で使うことのできるデータベースを調べる方法を解説します。

PDOが利用できるデータベースを調べる

データベースへのアクセスに便利な機能が揃っているPDOですが、肝心なデータベース自体の使う用意が整っていないと使うことができません。
実行環境によって利用できるデータベースも異なるため、制作環境と運用環境が異なる場合も注意が必要です。

そこで今回は、PHPの実行環境でPDOが利用できるデータベースを簡単に知る方法を解説します。

PDOが用意している2つの関数

PDOには元々、利用可能なデータベースのドライバーを取得するための関数が2つ用意されています。
どちらを使っても取得できる結果は同じなので、好みで選んでください。

index.php

<?php

// 1つ目 : PDO::getAvailableDrivers()
var_dump( PDO::getAvailableDrivers() );
// 出力例 : array(3) { [0]=> string(5) "mysql" [1]=> string(5) "pgsql" [2]=> string(6) "sqlite" }

// 2つ目 : pdo_drivers()
var_dump(pdo_drivers());
// 出力例 : array(3) { [0]=> string(5) "mysql" [1]=> string(5) "pgsql" [2]=> string(6) "sqlite" }

いずれも配列で使用可能なドライバーを返します。
この中に使用したいデータベースが含まれているかを確認できれば、PDOからアクセス可能であると知ることができます。

例えば上記の例では、出力結果を先頭から見てMySQL(mysql)、PostgreSQL(pgsql)、SQLite(sqlite)が利用可能だと分かります。

システムの中で使用したいデータベースが利用可能か自動的にチェックするには、取得した値を次のようにループ処理することで実現できます。

index.php

<?php

// 「PDO::getAvailableDrivers()」でもOK
foreach( $drivers = pdo_drivers() as $value ) {
	
	if( $value === 'mysql' ) {
		echo 'You can use MySQL';
		break;
	}
}
return;

今回使用した関数についてphp.netのページはこちら
PDO::getAvailableDrivers – php.net

  • このエントリーをはてなブックマークに追加