连接到MsSQL服务器的基于Linux的PHP安装
在Linux机器上通过PHP连接到远程Microsoft SQL Server的最佳方式是什么 PHP将只在Linux机器上运行连接到MsSQL服务器的基于Linux的PHP安装,php,sql-server,linux,Php,Sql Server,Linux,在Linux机器上通过PHP连接到远程Microsoft SQL Server的最佳方式是什么 PHP将只在Linux机器上运行 一段时间以来,我一直在寻找最简单的答案。您必须在linux上安装mssql php驱动程序。 这对你来说是最好的。从microsoft获取sqlsrv扩展,用于php试试:用于Ubuntu sudo apt-get install php5-sybase php5-odbc freetds-common 编辑freetds.conf,然后将MSSQL服务器与此PHP
一段时间以来,我一直在寻找最简单的答案。您必须在linux上安装mssql php驱动程序。
这对你来说是最好的。从microsoft获取sqlsrv扩展,用于php试试:用于Ubuntu
sudo apt-get install php5-sybase php5-odbc freetds-common
编辑freetds.conf,然后将MSSQL服务器与此PHP连接。PHP5.6
Ubuntu
sudo apt-get install php5.6-sybase freetds-common libsybdb5
AWS/Centos/Redhat
sudo yum install php56-mssql
之后,您可以通过PHP连接到MsSql数据库,如下所示:
<?php
$server = 'localhost';
$user = 'someUser';
$pass = 'somePassword';
$database = 'theDatabaseName';
try {
$pdo = new \PDO(
sprintf(
"dblib:host=%s;dbname=%s",
$server,
$database
),
$user,
$pass
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "There was a problem connecting. " . $e->getMessage();
}
$query = "SELECT * FROM TestSchema.Employees";
$statement = $pdo->prepare($query);
$statement->execute();
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
var_dump($results);
sudo apt-get install php7.2-sybase freetds-common libsybdb5
要安装tsql,可以运行以下操作:
安装SQL二进制文件以在任何PHP版本上进行测试
sudo apt install freetds-bin
PHP7+ Microsoft有我们可以使用的本机驱动程序。完整的说明如下所示 该链接还包含在您的开发机器上安装Ms SQL server所需的步骤(在Ubuntu上工作,在AWS上不工作,但您可以在那里启动RDS实例)。 它还包含关于如何在数据库中创建测试表和数据的基本说明,以及PHP连接代码 您还可以为更新版本的PHP安装以下组件:
<?php
$server = 'localhost';
$user = 'someUser';
$pass = 'somePassword';
$database = 'theDatabaseName';
try {
$pdo = new \PDO(
sprintf(
"dblib:host=%s;dbname=%s",
$server,
$database
),
$user,
$pass
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "There was a problem connecting. " . $e->getMessage();
}
$query = "SELECT * FROM TestSchema.Employees";
$statement = $pdo->prepare($query);
$statement->execute();
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
var_dump($results);
sudo apt-get install php7.2-sybase freetds-common libsybdb5
在这里和其他帖子中搜索并尝试了许多建议,并花费了大量时间后,一位同事建议尝试ADO 由于我们已经安装了一个支持ADO的PHP,所以启动和运行只需不到10分钟
<>如果您认真考虑从Linux PHP连接到MS-SQL,请考虑ADO. 有趣的是,这里的每个答案都提出了问题的一个解决方案,而不是回答问题,哪一个是“最佳”解决方案。不幸的是,OP忘记告诉我们“最佳”的标准是什么 到目前为止还没有人提到。虽然这需要配置odbc驱动程序以连接到数据库并启用php扩展,但此方法提供了php代码与底层数据库的最佳隔离,使以后更容易移植代码 应该提供良好的兼容性,但只支持php的v7版本
您可能更愿意坚持使用Linux发行版提供的功能,以确保您拥有可支持的产品和/或自动化补丁管理。odbc的另一种选择可能是,但您没有告诉我们这是哪个Linux发行版。没有。您也可以下载并编译源代码。不确定您是否能够将其编译为在linux平台上工作,因为它需要SQL Server本机客户端(仅限Windows)Microsoft为PHP发布了linux驱动程序。在这里查看:。在这里获取说明:查看本教程:这是迄今为止最好的答案,谢谢上面的内容在docker和PHP5.6中对我不起作用,但这确实起到了作用->建议应该作为评论发布。唯一的答案应该是邮递。如果我不理解这里的协议,我很抱歉,但我很确定我给出了很好的答案。问题是:“通过Linux设备上的PHP连接到远程Microsoft SQL Server的最佳方式是什么?”我的回答是:通过Linux设备上的PHP连接到远程Microsoft SQL Server的最佳方式是使用PHP ADO库。有很多例子。这是我发现的第一个: