【问题标题】:php code to test pdo is available?测试 pdo 的 php 代码可用吗?
【发布时间】:2011-03-09 01:36:44
【问题描述】:

我想使用PDO,但我不确定我的主机是否设置正确。

如何在 PHP 中测试它是否适用于 MySQL?

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

始终为 php 5.1+ 安装 PDO。您可以使用 phpinfo(); 检查已安装或未安装的特定数据库驱动程序;您可以尝试使用@Mark Ba​​ker 的想法检查特定的驱动程序并检查特定的常量;

var_dump(defined(PDO::MYSQL_ATTR_LOCAL_INFILE)); // mysql
var_dump(PDO::FB_ATTR_TIME_FORMAT)); // firebird

请注意,并非所有驱动程序都定义了特定的常量,因此 phpinfo() 仍然是最佳解决方案。

使用命令行,您可以使用:

$ php -m

作为 phpinfo() 的替代方法,您可以使用:

extension_loaded ('PDO' ); // returns boolean
// or
extension_loaded('pdo_mysql');
// or get all extensions and search for a specific one
get_loaded_extensions(); 

【讨论】:

    【解决方案2】:

    除了使用 phpinfo() 来查看它是否正确列出

    if (!defined('PDO::ATTR_DRIVER_NAME')) {
    echo 'PDO unavailable';
    }
    

    【讨论】:

      【解决方案3】:

      试试这个

      print_r(PDO::getAvailableDrivers());
      

      应该给PHP支持的应用程序

      Array ( [0] => mysql [1] => sqlite )
      

      【讨论】:

      • 这是一个更好的答案,将列出所有可用的,而不仅仅是一个。
      【解决方案4】:

      使用命令行,用于 PDO:

      php -m|grep -i pdo
      

      对于支持 MySQL 的 PDO:

      php -m|grep -i pdo_mysql
      

      要安装php mysql支持,搜索包名(Ubuntu):

      apt-cache search php5*|grep mysql
      

      如果还没有安装它(Ubuntu):

      sudo apt-get install php5-mysql
      

      【讨论】:

      • 应该注意,这些命令只在 *nix 系统上有效(这对于 Web 服务器管理新手来说可能不是很明显)。 grep 命令有一些替代方法,但 sudo 和 apt-get 是不同的动物。是的,我知道这对大多数人来说是显而易见的,但正如我所说,对所有人来说并非如此。
      【解决方案5】:

      创建一个包含

      的文件
      <?php
      
      phpinfo();
      
      ?>
      

      它会显示 PDO(以及其他功能是否已启用)

      【讨论】:

        【解决方案6】:

        对于 Windows 服务器,我发现以下内容可用于检查从命令提示符加载哪些 PDO 扩展:

        php -m|findstr -i pdo_

        在我的系统上,该命令让我得到以下结果:

        pdo_mysql PDO_ODBC pdo_pgsql pdo_sqlite

        【讨论】:

          猜你喜欢
          • 2018-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-31
          • 2011-02-24
          • 2011-03-18
          • 1970-01-01
          • 2011-06-28
          相关资源
          最近更新 更多