【问题标题】:Check if PHP has been compiled --with-mysql [duplicate]检查PHP是否已编译--with-mysql [重复]
【发布时间】:2012-06-19 08:47:39
【问题描述】:

可能重复:
Detecting mysql support in php

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

【问题讨论】:

标签: php mysql


【解决方案1】:

实际上有多个模块支持 MySQL (mysql, mysqli, pdo_mysql, ...)。 MySQLi (improved) 通常被推荐用于对 MySQL5 特性的更完整的支持,而不是原始的 mysql 模块。 PDO (PHP data objects) 是一个数据库抽象层,提供面向对象的数据抽象。

如果您想检查每个模块(mysql_connect、mysqli_connect、...)是否存在特定函数,您可以按照之前的 cmets 使用 function_exists()

或者,您可以使用 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

【讨论】:

  • 这个应该是公认的答案
【解决方案2】:
if (function_exists('mysql_connect')) ...

【讨论】:

  • 同意,但如果有一个名为 mysql_connect 的函数,它很可能是 the mysql_connect 或完全相同的东西。 :)
  • 好吧,我就是这么说的。而且我还发现了这个问题的重复项,我认为也值得指出。
【解决方案3】:

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

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

phpinfo — 输出 PHP 的配置信息

【讨论】:

  • 以编程方式。无论如何,其他答案回答了这个特定的问题。
  • @qdot 它仍然是程序化的,因为它是一个函数等等。但我明白你的意思;)
【解决方案4】:

是的,有。 只需检查mysql_* 函数之一是否存在,比如mysql_connect

if (function_exists("mysql_connect")) {
  echo "compiled using --with-mysql\n";
}

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2012-01-26
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多