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

时间:2014-10-07 18:11:51

标签: php mysql sql-server ssl pdo

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

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

我现在需要这个连接是安全的,通过SSL发送所有交易。我没有看到any references to secure connections in the PHP manual的DBLIB驱动程序。

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

编辑:我在PHP 5.5.9上。

2 个答案:

答案 0 :(得分:0)

您的服务器设置不确定,但“官方”方式是使用Microsoft的 drivers。不幸的是,它们仅适用于Windows PHP服务器的SSL。以下是 connection options

如果您使用的是Linux,则有一个选项可以执行SSL,但它不是MS正式支持的。

答案 1 :(得分:0)

我知道在 6 年后发布它有点晚了,但目前我使用 PDO 和 mssql 获得了这个解决方案。但是,我将 ODBC 与 MSSQL 一起使用,这就是我将 PDO 与 XAMPP 作为本地主机一起使用的方法

显然,odbc&mssql 不需要这么复杂

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

但很简单

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

这是我系统的工作代码

 $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();
    }