【问题标题】:Connect to MSSQL server via PHP PDO over SSL通过 SSL 上的 PHP PDO 连接到 MSSQL 服务器
【发布时间】:2014-12-02 06:14:37
【问题描述】:

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

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

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

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

编辑:我使用的是 PHP 5.5.9。

【问题讨论】:

标签: php mysql sql-server ssl pdo


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-19
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2012-12-27
      • 2011-08-22
      相关资源
      最近更新 更多