【发布时间】:2011-05-24 15:56:53
【问题描述】:
有没有我可以用来确定 PDO 是启用还是禁用的 PHP 命令?
我知道我手动运行 phpinfo() 并观察它,但我有一个脚本,我运行各种 Web 服务器,显示服务器的选定 PHP 配置设置。
所以我想看看有没有我可以使用的命令。
【问题讨论】:
有没有我可以用来确定 PDO 是启用还是禁用的 PHP 命令?
我知道我手动运行 phpinfo() 并观察它,但我有一个脚本,我运行各种 Web 服务器,显示服务器的选定 PHP 配置设置。
所以我想看看有没有我可以使用的命令。
【问题讨论】:
确定将使用 extension_loaded 函数的正确方法:-
if ( extension_loaded('pdo') ) {
.......
}
您可能还想使用以下方法检查特定于数据库的 PDO 驱动程序:-
if ( extension_loaded('pdo_<database type here>') ) { // e.g., pdo_mysql
.......
}
【讨论】:
pdo_firebird、pdo_mysql、pdo_oci、pdo_odbc、pdo_pgsql、pdo_sqlite、pdo_sqlite_external
【讨论】:
defined() 但 PDO 切换到类常量。
false 添加为第二个参数不是更好吗?如果 OP 只想检查是否存在,而不是同时自动加载类,我的意思是。
PDO。
只需在命令提示符下以 php -m 的形式运行命令,它将显示为 PHP 安装的模块列表
【讨论】:
你有两个选择:
if (extension_loaded('pdo')) { /* ... */ }
或者(这个不是 100% 可靠的,因为它可以在用户级类中实现):
if (class_exists('PDO', false)) { /* ... */ }
就个人而言,我更喜欢第一个选项。
【讨论】:
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
elseif (defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO available';
}
我希望这行得通
【讨论】:
怎么样
if (in_array('pdo', get_loaded_extensions())) {
... pdo is there ...
}
【讨论】: