PHP 从 Linux 和 Windows 连接到 MSSQL

标签 php sql-server linux windows

我正在使用 Linux 构建服务器 ( http://circleci.com ) 进行自动构建和测试;但是我需要连接到 MSSQL 服务器。我可以在 Windows 上进行良好的开发并使用 MS php SQLSVR 驱动程序进行连接,但我无法在 Linux 构建服务器上进行连接,因为驱动程序仅限于 Windows。

我的问题是:有没有一种方法可以通过 PHP 连接到 Windows 和 Linux 的 MSSQL 服务器?尝试过 odbc,但是在 linux 上您需要 bdlib 和 FreeTDS - 这将构成代码更改,因此意味着测试不是 100%,例如在 Windows 环境中它将使用 odbc:{SQL Server} 而在 linux 上它将是 odbc:FreeTDS

检查正在使用的系统然后选择相应的数据库连接字符串似乎并不正确。

我使用的是 PHP 5.5.1

最佳答案

不,没有单一的方法,但是做这样的事情是微不足道的:

if ('Linux' === PHP_OS){
    $pdo = new PDO("dblib:dbname=$database_name;host=$database_server", $username, $password);
}else{
    // $pdo = whatever you're using on your Windows box now.
}

您还需要在 Linux 服务器上设置 odbc.ini、odbcinst.ini 和 freetds.conf 文件。

关于PHP 从 Linux 和 Windows 连接到 MSSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273656/

相关文章:

php - 使用 memcache 作为 session 存储?

php - Laravel 使用 queue() 发送邮件不在服务器上工作

php - 无法保存表单中的确切时间戳

sql - 如何在 select 语句中添加从 select 语句派生的列?

mysql - SQL 密集索引和稀疏索引

c# - 将 SQL Server 异常传递给 .net

正则表达式:后面没有

javascript - 通过AJAX将JS多维数组发送到PHP

c++ - 线程间同一个socket的recv/send/close代码需要加锁吗

html - 没有这样的文件或目录 : var/www/html in ec2 instance