如何在不连接的情况下在PHP中获取服务器MySQL版本

Chr*_*s81 12 php mysql

我需要在PHP脚本中回显MySQL版本(在下载插件之前,它是用户的服务器需求检查页面),而不必将它们连接到他们的数据库.

将此脚本上载到其服务器并在浏览器中打开它.我可以要求他们运行php信息,但我需要的只是Mysql版本,并在脚本中格式化其余的结果.

我该怎么办呢?

Tim*_*Tim 19

如果您可以访问命令行mysql可执行文件,您可以尝试这样做:

function getMySQLVersion() { 
  $output = shell_exec('mysql -V'); 
  preg_match('@[0-9]+\.[0-9]+\.[0-9]+@', $output, $version); 
  return $version[0]; 
}
Run Code Online (Sandbox Code Playgroud)

对于客户端版本:

print mysql_get_client_info();
Run Code Online (Sandbox Code Playgroud)

如果没有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);
Run Code Online (Sandbox Code Playgroud)

  • 这将是客户端版本.很多主机将服务器放在一台单独的机器上. (5认同)
  • 只是更新的旁注。从 PHP 5.5.0 开始,所有“mysql_*”似乎都已被弃用。所以,“mysql-get-client-info”函数。看一下[这里](http://www.php.net/manual/en/function.mysql-get-client-info.php)。 (2认同)

Mar*_*ams 11

您需要用户输入他们的数据库凭据,这样您就可以连接到MySQL服务器并运行以下查询来获取MySQL服务器版本:

SHOW VARIABLES LIKE 'version'
Run Code Online (Sandbox Code Playgroud)

这是我服务器上的输出:

Variable_name     Value
----------------------------
version           5.1.53-log
Run Code Online (Sandbox Code Playgroud)