最終更新日:
公開日:
レシピ
データベース 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