PHPプログラミング

最終更新日:
公開日:

レシピ

データベース PDO

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

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

この記事のポイント

  • PDOで使えるデータベースを調べる
  • 具体的なコード例で処理内容が理解できる

目次

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

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

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

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

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

コード例

<?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とMariaDB(mysql)、PostgreSQL(pgsql)、SQLite(sqlite)が利用可能だと分かります。
(MariaDBも「mysql」に含まれます。)

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

コード例

<?php

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

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

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。