2012-05-02 30 views
10

Tôi cần lặp lại phiên bản MySQL trong tập lệnh PHP (đây là trang kiểm tra yêu cầu máy chủ cho người dùng trước khi tải xuống plugin) mà không cần họ kết nối với cơ sở dữ liệu của họ.Cách lấy phiên bản MySQL máy chủ bằng PHP mà không cần kết nối

Tải lên tập lệnh này lên máy chủ của họ và mở tập lệnh đó trong trình duyệt. Tôi có thể yêu cầu họ chạy thông tin php nhưng tất cả tôi cần là phiên bản Mysql và nó được định dạng trong kịch bản với phần còn lại của kết quả.

Tôi nên làm như thế nào?

+6

Cho đến khi bạn đã kết nối với một máy chủ mysql, không có cách nào để tìm hiểu phiên bản nào của bất kỳ máy chủ nào có thể hoặc không thể chạy. Điều tốt nhất bạn có thể hy vọng là tìm phiên bản của ứng dụng được cài đặt không phải là phiên bản máy chủ. – Anigel

Trả lời

17

Nếu bạn có quyền truy cập vào các dòng lệnh mysql thực thi bạn có thể thử này:

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

Đối với phiên bản client:

print mysql_get_client_info(); 

Nếu không có quyền truy cập vỏ để có được phiên bản máy chủ bạn phải kết nối đầu tiên :

$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

Rất nhiều máy chủ không cho phép shell-exec. Bất kỳ cách nào khác? – Chris81

+2

Đó sẽ là phiên bản ứng dụng khách. Rất nhiều máy chủ có máy chủ trên một máy riêng biệt. –

+0

Trừ khi bạn có quyền truy cập để chạy các lệnh shell trên máy chủ thì bạn sẽ không thể nhận được phiên bản MySQL mà không cần thiết lập kết nối. –

7

Bạn sẽ cần người dùng nhập thông tin đăng nhập DB của họ, vì vậy bạn có thể kết nối đến máy chủ MySQL và chạy các truy vấn sau đây để có được phiên bản máy chủ MySQL:

SHOW VARIABLES LIKE 'version' 

Dưới đây là kết quả của tôi:

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

Xin cảm ơn các bạn. Tôi sẽ phải làm cho họ nhập thông tin DB của họ tôi đoán. – Chris81

Các vấn đề liên quan