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

Connect to MSSQL server via PHP PDO over SSL

提问人:Michael Irigoyen 提问时间:10/8/2014 最后编辑:DrewMichael Irigoyen 更新时间:5/17/2021 访问量:2905

问:

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

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

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

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

编辑:我在 PHP 5.5.9 上。

php mysql sql-server ssl pdo

评论

0赞 Drew 9/12/2015
对此有任何解决方案吗?添加了标签 ()。另请参阅 stackoverflow.com/a/9768753/1816093sql-server
0赞 hanshenrik 9/17/2015
$mssql = new PDO('dblib:host=1.2.3.4;dbname=数据库名称;加密=1', '用户名', '密码');每 php.net/manual/en/ref.pdo-sqlsrv.connection.php
0赞 hanshenrik 9/17/2015
呜,那是如果你使用的是PDO_SQLSRV,而不是PDO_DBLIB......尝试更换驱动程序?PDO_SQLSRV记录在案以支持 ssl 和 MSSQL :/
0赞 user1175370 9/22/2015
不确定这是否在回答您的查询访问 stackoverflow.com/questions/9738712/...
0赞 Kyle Wiering 10/31/2015
可能的重复

答:

0赞 Kyle Wiering 9/27/2015 #1

不确定您的服务器设置,但执行此操作的“官方”方法是使用 Microsoft 的驱动程序。不幸的是,它们仅适用于 Windows PHP 服务器的 SSL。以下是连接选项

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

0赞 Steve Kush 5/17/2021 #2

我知道在 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();
    }