我想使用PDO,但我不确定我的托管是否已正确设置。
如何在PHP中测试它是否已设置并适用于MySQL?
答案 0 :(得分:38)
PDO总是为php 5.1+安装。您可以使用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();
答案 1 :(得分:28)
除了使用phpinfo()查看它是否正确列出
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
答案 2 :(得分:15)
试试这个
print_r(PDO::getAvailableDrivers());
应该提供PHP支持的应用程序
Array ( [0] => mysql [1] => sqlite )
答案 3 :(得分:9)
使用命令行,用于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
答案 4 :(得分:4)
创建包含
的文件<?php
phpinfo();
?>
它将显示PDO(和其他功能是否已启用)
答案 5 :(得分:0)
对于Windows服务器,我发现以下内容对于检查从命令提示符加载哪些PDO扩展非常有用:
php -m|findstr -i pdo_
在我的系统上,该命令会向我发出以下结果:
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite