我需要在PHP腳本(它是下載插件之前用戶的服務器需求檢查頁面)中回顯MySQL版本,而無需連接到它們的數據庫。如何在沒有連接的情況下在PHP中獲取服務器MySQL版本
將此腳本上傳到他們的服務器並在瀏覽器中打開它。我可以讓他們運行php信息,但我需要的只是Mysql版本,並且在腳本中將其格式化爲其餘結果。
我應該怎麼辦?
我需要在PHP腳本(它是下載插件之前用戶的服務器需求檢查頁面)中回顯MySQL版本,而無需連接到它們的數據庫。如何在沒有連接的情況下在PHP中獲取服務器MySQL版本
將此腳本上傳到他們的服務器並在瀏覽器中打開它。我可以讓他們運行php信息,但我需要的只是Mysql版本,並且在腳本中將其格式化爲其餘結果。
我應該怎麼辦?
如果你有機會到命令行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);
很多主機不允許shell-exec。任何其他方式? – Chris81
這將是客戶端版本。很多主機都在單獨的機器上安裝了服務器。 –
除非您有權在服務器上運行shell命令,否則您將無法在未建立連接的情況下獲取MySQL版本。 –
您需要用戶輸入他們的數據庫憑證,這樣你就可以連接到MySQL服務器並運行以下查詢來獲得MySQL服務器版本:
SHOW VARIABLES LIKE 'version'
這裏是我的輸出:
Variable_name Value
----------------------------
version 5.1.53-log
謝謝你們。我將不得不讓他們輸入他們的數據庫信息我猜。 – Chris81
直到您已連接到MySQL服務器時,沒有辦法找出任何服務器可能運行或不運行的版本。您可以期望的最佳方式是找到安裝的客戶端版本,而不是服務器版本。 – Anigel