5

可能重复:
在 php 中检测 mysql 支持

有没有一种快速的方法来以编程方式检查这个特定的 PHP 安装是否已在支持 MYSQL 的情况下编译?

4

4 回答 4

9

实际上有多个模块支持 MySQL (mysql, mysqli, pdo_mysql, ...)。 与原始 mysql 模块相比,通常建议使用MySQLi(改进)以更完整地支持 MySQL5 功能。PDO(PHP 数据对象)是一个数据库抽象层,提供面向对象的数据抽象。

function_exists()如果要检查每个模块(mysql_connect,mysqli_connect,...)是否存在特定功能,可以使用前面的注释。

或者,您可以使用 PHP 函数extension_loaded()来检查扩展本身(模块名称与 phpinfo() 的输出匹配):

<?php
    if (extension_loaded('mysql') or extension_loaded('mysqli')) {
        // Looking good
    }
?>

在命令行提示符下,您可以列出所有已编译的模块:

php -m

如果您使用的是 unix-ish 系统,请使用grep将输出过滤到 MySQL 相关模块:

php -m | grep -i mysql

如果您使用的是 Windows,请使用findstr将输出过滤到 MySQL 相关模块:

php -m | findstr -i mysql
于 2012-06-19T12:54:31.820 回答
8
if (function_exists('mysql_connect')) ...
于 2012-06-19T08:50:51.700 回答
3

我想你可能正在寻找phpinfo();

这显示了有关 PHP 配置的信息。

phpinfo — 输出有关 PHP 配置的信息

于 2012-06-19T08:50:40.603 回答
2

就在这里。只需检查其中一个mysql_*功能是否存在,例如mysql_connect

if (function_exists("mysql_connect")) {
  echo "compiled using --with-mysql\n";
}
于 2012-06-19T08:50:37.217 回答