通过SSL通过PHP PDO连接到MSSQL服务器


Connect to MSSQL server via PHP PDO over SSL

我通过PHP PDO与MSSQL服务器建立了工作连接。

$mssql = new PDO('dblib:host=1.2.3.4;dbname=databasename', 'username', 'password');

我现在需要这个连接是安全的,通过SSL发送所有事务。在DBLIB驱动程序的PHP手册中,我没有看到任何对安全连接的引用。

有人能提供一些关于我如何通过SSL启用此连接的见解吗?(如果需要,我可以在两台服务器上导出和导入证书。)

编辑:我使用的是PHP 5.5.9。

不确定您的服务器设置,但"官方"方法是使用Microsoft的驱动程序。不幸的是,它们只适用于WindowsPHP服务器的SSL。以下是连接选项。

如果您在Linux上,有一个选项可以使用SSL,但它不受MS的官方支持。

我知道6年后发布这个有点晚了,但目前我使用带有mssql的PDO获得了这个解决方案。然而,我在MSSQL中使用ODBC,这就是我所做的,让PDO作为localhost 与XAMPP一起工作

显然,odbc&mssql不需要像这样复杂的

$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);

只是简单的

$conn = new PDO ("odbc:$dbname", $username, $password);

这是我的sysyem的工作代码

 $dbname = "Form_Database";
    $username = "";
    $password = "";
    try{
        $conn = new PDO ("odbc:$dbname", $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $conn->prepare("<--SQL QUERY-->");
        $stmt -> execute();
        $result = $stmt -> setFetchMode(PDO::FETCH_ASSOC);
        
    } catch(PDOException $e) {
      echo "Error: " . $e->getMessage();
    }