2012-05-02 16 views
10

我需要在PHP腳本(它是下載插件之前用戶的服務器需求檢查頁面)中回顯MySQL版本,而無需連接到它們的數據庫。如何在沒有連接的情況下在PHP中獲取服務器MySQL版本

將此腳本上傳到他們的服務器並在瀏覽器中打開它。我可以讓他們運行php信息,但我需要的只是Mysql版本,並且在腳本中將其格式化爲其餘結果。

我應該怎麼辦?

+6

直到您已連接到MySQL服務器時,沒有辦法找出任何服務器可能運行或不運行的版本。您可以期望的最佳方式是找到安裝的客戶端版本,而不是服務器版本。 – Anigel

回答

17

如果你有機會到命令行MySQL的可執行文件,你可以試試這個:

function getMySQLVersion() { 
    $output = shell_exec('mysql -V'); 
    preg_match('@[0-9]+\.[0-9]+\.[0-9][email protected]', $output, $version); 
    return $version[0]; 
} 

對於客戶端版本:

print mysql_get_client_info(); 

沒有shell訪問,讓你必須先連接服務器版本:

$link = mysql_connect("localhost", "username", "password"); 
if (!$link) die('Could not connect: ' . mysql_error()); 
print "MySQL server version: " . mysql_get_server_info(); 
mysql_close($link); 
+0

很多主機不允許shell-exec。任何其他方式? – Chris81

+2

這將是客戶端版本。很多主機都在單獨的機器上安裝了服務器。 –

+0

除非您有權在服務器上運行shell命令,否則您將無法在未建立連接的情況下獲取MySQL版本。 –

7

您需要用戶輸入他們的數據庫憑證,這樣你就可以連接到MySQL服務器並運行以下查詢來獲得MySQL服務器版本:

SHOW VARIABLES LIKE 'version' 

這裏是我的輸出:

Variable_name  Value 
---------------------------- 
version   5.1.53-log 
+0

謝謝你們。我將不得不讓他們輸入他們的數據庫信息我猜。 – Chris81

相關問題