【发布时间】:2011-03-09 01:36:44
【问题描述】:
我想使用PDO,但我不确定我的主机是否设置正确。
如何在 PHP 中测试它是否适用于 MySQL?
【问题讨论】:
-
如果 PDO 不可用,您可以求助于 xpdo.org(模拟 API)。
我想使用PDO,但我不确定我的主机是否设置正确。
如何在 PHP 中测试它是否适用于 MySQL?
【问题讨论】:
始终为 php 5.1+ 安装 PDO。您可以使用 phpinfo(); 检查已安装或未安装的特定数据库驱动程序;您可以尝试使用@Mark Baker 的想法检查特定的驱动程序并检查特定的常量;
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();
【讨论】:
除了使用 phpinfo() 来查看它是否正确列出
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
【讨论】:
试试这个
print_r(PDO::getAvailableDrivers());
应该给PHP支持的应用程序
Array ( [0] => mysql [1] => sqlite )
【讨论】:
使用命令行,用于 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
【讨论】:
创建一个包含
的文件<?php
phpinfo();
?>
它会显示 PDO(以及其他功能是否已启用)
【讨论】:
对于 Windows 服务器,我发现以下内容可用于检查从命令提示符加载哪些 PDO 扩展:
php -m|findstr -i pdo_
在我的系统上,该命令让我得到以下结果:
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
【讨论】: