Here is something I put together because I needed a way to pull the MySQL version number from the server without actually having a connection. This was due to being part of a server info screen prior to installation of a cms. Users need to know if their MySQL is supported or not prior to installation right? :)
This will scrape the phpinfo page looking for the MySQL row that says Client API version and return the version number after it. This could also be used to scrape just about anything from the phpinfo page. :)
ob_start();
phpinfo(INFO_MODULES);
$info = ob_get_contents();
ob_end_clean();
$info = stristr($info, 'Client API version');
preg_match('/[1-9].[0-9].[1-9][0-9]/', $info, $match);
$gd = $match[0];
echo 'MySQL: '.$gd.' <br />';
This will output:
MySQL: 4.1.22 (which is the version on my server)
I know this is crude but it's the only thing I could come up with and there isn't anything like this info available online so here it is. I suck at preg_match and it would be helpful if someone could modify the string here to stand the test of time.
mysql_get_server_info
(PHP 4 >= 4.0.5, PHP 5)
mysql_get_server_info — MySQL サーバー情報を取得する
説明
string mysql_get_server_info
([ resource
$link_identifier = NULL
] )MySQL サーバーのバージョンを取得します。
パラメータ
-
link_identifier -
MySQL 接続。 指定されない場合、mysql_connect() により直近にオープンされたリンクが 指定されたと仮定されます。そのようなリンクがない場合、引数を指定せずに mysql_connect() がコールした時と同様にリンクを確立します。 リンクが見付からない、または、確立できない場合、
E_WARNINGレベルのエラーが生成されます。
返り値
成功した場合に MySQL サーバーのバージョン、失敗した場合に FALSE を返します。
例
例1 mysql_get_server_info() の例
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
printf("MySQL server version: %s\n", mysql_get_server_info());
?>
上の例の出力は、 たとえば以下のようになります。
MySQL server version: 4.0.1-alpha
参考
- mysql_get_client_info() - MySQL クライアント情報を取得する
- mysql_get_host_info() - MySQL ホスト情報を取得する
- mysql_get_proto_info() - MySQL プロトコル情報を取得する
- phpversion() - 現在の PHP バージョンを取得する
cmscoder at seasamecreek dot info
16-May-2008 04:55
Kalle Sommer Nielsen
29-May-2007 04:54
An alternative to mysql_get_client_info() is to use the VERSION() function in MySQL language like:
<?php
$query = mysql_query("SELECT VERSION() as mysql_version");
?>
The output is the same as mysql_get_client_info()
cNOooSPAMlmax1 at o2 dot pl
08-Jul-2006 04:27
That's better:
<?php
mysql_connect('localhost', 'user', 'password') or
die('Could not connect: ' . mysql_error());
$a = mysql_get_server_info();
$b = substr($a, 0, strpos($a, "-"));
echo $b;
?>
