mysql_get_client_info() 的替代方案是使用 MySQL 語言中的 VERSION() 函式,例如:
<?php
$query = mysql_query("SELECT VERSION() as mysql_version");
?>
輸出結果與 mysql_get_client_info() 相同
(PHP 4 >= 4.0.5, PHP 5)
mysql_get_server_info — 取得 MySQL 伺服器資訊
此擴充功能在 PHP 5.5.0 中已被棄用,並在 PHP 7.0.0 中被移除。建議改用 MySQLi 或 PDO_MySQL 擴充功能。另請參閱 MySQL: 選擇 API 指南。此函式的替代方案包括:
PDO::ATTR_SERVER_VERSION
作為 attribute
參數的 PDO::getAttribute() 方法
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('無法連線: ' . mysql_error());
}
printf("MySQL 伺服器版本:%s\n", mysql_get_server_info());
?>
上述範例的輸出會類似如下:
MySQL server version: 4.0.1-alpha
mysql_get_client_info() 的替代方案是使用 MySQL 語言中的 VERSION() 函式,例如:
<?php
$query = mysql_query("SELECT VERSION() as mysql_version");
?>
輸出結果與 mysql_get_client_info() 相同
以下是我整理的一些程式碼,因為我需要一種在沒有實際連線的情況下從伺服器取得 MySQL 版本號的方法。這是因為它屬於 CMS 安裝前的伺服器資訊畫面的一部分。使用者需要在安裝前知道他們的 MySQL 是否受支援,對吧? :)
這段程式碼會抓取 phpinfo 頁面,尋找顯示「Client API version」的 MySQL 列,並返回其後的版本號。這也可以用於從 phpinfo 頁面抓取幾乎任何東西。 :)
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 />';
這將輸出
MySQL: 4.1.22 (這是我伺服器上的版本)
我知道這很粗糙,但這是我唯一能想到的,而且網路上也沒有任何類似資訊,所以我就把它放上來了。我不擅長 preg_match,如果有人能修改這裡的字串以適應未來的版本,將會很有幫助。
這樣更好
<?php
mysql_connect('localhost', 'user', 'password') or
die('無法連線:' . mysql_error());
$a = mysql_get_server_info();
$b = substr($a, 0, strpos($a, "-"));
echo $b;
?>