PHP SQLSRV连接“;获取数据库句柄失败:找不到驱动程序”;
我正在使用以下代码:PHP SQLSRV连接“;获取数据库句柄失败:找不到驱动程序”;,php,sqlsrv,Php,Sqlsrv,我正在使用以下代码: try { $hostname = "*****"; $port = 1443; $dbname = "*******"; $username = "********"; $pw = "************"; $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw"); } catch (PDOException $e) {
try {
$hostname = "*****";
$port = 1443;
$dbname = "*******";
$username = "********";
$pw = "************";
$dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
错误:
Failed to get DB handle: could not find driver
DLL文件已在php/ext中,并在php.ini中修改
我还能做什么?从您正在使用的端口,很明显您正在尝试连接到MSSQL数据库 PHP文档指出,对于运行PHP5.3或更早版本的windows计算机,不建议使用PDO支持连接到SQLSRV 他们建议使用微软提供的sqlsrv驱动程序
指向sqlsrv驱动程序的链接位于上面的php链接中。您尝试过mssql\u connect吗 以下是语法:mssql_connect([string$servername[,string$username[,string$password[,bool$new_link=false]])) 执行工作将是:
$link = mssql_connect($hostname, $username, $pw);
mssql_select_db($dbname, $link);
请注意,$hostname应该包含MSSQL实例名称。e、 g.“KALLESPC\SQLEXPRESS”无效。这应该是类似于mysql之类的东西——你必须告诉PDO你希望它连接到什么样的数据库,而不是它连接到“一个数据库”。它显然要连接到数据库,需要知道它应该说什么语言。“DLL文件”是一个相当模糊的描述。
dblib:
前缀假定为FreeTDS库,确实显示在phpinfo()中。您可以使用newpdo(“mysql:…”)代码>对于MySQL,新的PDO(“pgsql:…”代码>用于PostgreSQL或任何支持的其他类型。阅读PHP数据对象文档: