PHP/Xampp/PDO-使用Xampp在本地连接到带有PHP中的PDO库的在线数据库

PHP/Xampp/PDO-使用Xampp在本地连接到带有PHP中的PDO库的在线数据库,php,pdo,xampp,Php,Pdo,Xampp,基本上是标题, 当我尝试连接到数据库时,出现错误:找不到驱动程序 我在网上搜索过,据说我不得不取消几个扩展的注释。 我在C:\xampp\php中的php.ini中取消了extension=php_pgsql.dll和extension=php_pdo_pgsql.dll的注释,但这并没有解决问题 当我在在线服务器上运行代码时,数据库连接就起作用了。 我正在使用PDO将数据库连接到MSSQL服务器 基本信息: 我正在Windows上使用XAMPP控制面板V3.2.2 我是这样联系的: defi

基本上是标题,

当我尝试连接到数据库时,出现错误:
找不到驱动程序

我在网上搜索过,据说我不得不取消几个扩展的注释。 我在
C:\xampp\php
中的
php.ini
中取消了
extension=php_pgsql.dll
extension=php_pdo_pgsql.dll的注释,但这并没有解决问题

当我在在线服务器上运行代码时,数据库连接就起作用了。 我正在使用PDO将数据库连接到MSSQL服务器

基本信息:

  • 我正在Windows上使用XAMPP控制面板V3.2.2
  • 我是这样联系的:

    define("USER_NAME", "myusername");
    define("DATABASE", "mydatabase");
    define("PASSWORD", "mypassword");
    define("HOST", "myhost");
    
    try{
        $db = new PDO("dblib:host=".HOST.";dbname=".DATABASE, USER_NAME, PASSWORD);
        $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }catch(PDOException $exception){
        echo $exception->getMessage();
        exit;
    }
    
编辑

我下载了PDO的MSSQL驱动程序。 我添加了以下两个扩展:

extension=php_sqlsrv_54_ts.dll
extension=php_pdo_sqlsrv_54_ts.dll
没有成功。

-EDIT-

您启用了错误的扩展以使用MSSQL数据库

因此,您可以检查文档中的dll(提示来自)

-原创的-

主机忘记了数据库服务器端口(host=“.host.”:“.port.”;):

希望这能奏效

更多信息:
您不能在XAMPP3.2.2中使用PDO_dblib


在Windows上,您应该使用

dblib
iirc用于MSSQL,您描述的扩展用于PostgreSQL。那是哪一个呢?你是在连接MSSQL,还是Postgres,或者其他什么。哦,我的错。实际上,我正在使用MSSQL。我是否应该取消对其他扩展的注释?是的,请查看for dblib。您正在专门寻找dblib dll。@JonStirling我已经下载了驱动程序。我更新了我的问题,你能检查一下吗?最近的错误是什么?更改文件后是否重新启动了webserver/php进程(取决于设置)?端口不是DSN的必需部分。
define("USER_NAME", "myusername");
define("DATABASE", "mydatabase");
define("PASSWORD", "mypassword");
define("HOST", "myhost");
define("PORT", "10060");

try{
    $db = new PDO("dblib:host=".HOST.":".PORT.";dbname=".DATABASE, USER_NAME, PASSWORD);
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $exception){
    echo $exception->getMessage();
    exit;
}