データベースのバージョンを調べてみる
データベースのバージョンを調べる方法はいくつかある。とは言っても、例えば「PostgreSQL パージョン 取得」と調べても、SQLを記載するページが山ほど検索されるだけだ。今回私が知りたかったのは、PHPからバージョンを調べる方法だ。それも検索キーワードにPHPを追加したところで私の求める結果は返ってこなかった。
Nucleusのinstall.phpには以下のようなコードが記述されている。コメントにもあるように、これはphpMyAdminというフリーのデータベース管理ツールに記述されているものだ。とは言っても、最近のphpMyAdminにはこの記述は見られない。
どうやら接続リソースがなくても処理が通るらしい。ちょっと驚きだ。「SELECT VERSION();」というSQLはMySQLもPostgreSQLも実装されている。ただPostgreSQLは接続リソースがないと取れないようだ。
サーバーの仕様にもよるのだろうがMySQLにパスワード保護かかかっていもこれは取得できる。どうやらMySQLの仕様でSELECT VERSION();は外からでも実行できるようになっているらしい。ためしに、既存のテーブルをSELECTしてみたが、エラーになった。
Nucleus同様、インストーラでのバージョンチェックには有効だが、他のバージョンのシステム(サーバー、PHP、MySQLなど)ではどういった動きをするのかはわからない。おそらく最新版のMySQLでも有効なはずだが、PHP6で関数の仕様が変更されていると使えない可能性も高い。ちなみにPHP4、PHP5での可能のようだ。
どうやら接続リソースがなくても処理が通るらしい。ちょっと驚きだ。「SELECT VERSION();」というSQLはMySQLもPostgreSQLも実装されている。ただPostgreSQLは接続リソースがないと取れないようだ。
サーバーの仕様にもよるのだろうがMySQLにパスワード保護かかかっていもこれは取得できる。どうやらMySQLの仕様でSELECT VERSION();は外からでも実行できるようになっているらしい。ためしに、既存のテーブルをSELECTしてみたが、エラーになった。
Nucleus同様、インストーラでのバージョンチェックには有効だが、他のバージョンのシステム(サーバー、PHP、MySQLなど)ではどういった動きをするのかはわからない。おそらく最新版のMySQLでも有効なはずだが、PHP6で関数の仕様が変更されていると使えない可能性も高い。ちなみにPHP4、PHP5での可能のようだ。
コメント