[英]Linux based PHP install connecting to MsSQL Server
在Linux机器上通过PHP连接到远程Microsoft SQL Server的最佳方法是什么。
PHP将只能在Linux机器上运行。
我一直在寻找最简单的答案已有一段时间了。
的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);
您可以在命令行中使用类似以下的方法对MsSQL进行故障排除:
tsql -H your.server.name -p 1433 -U yourusername -P yourpassword -D yourdatabasename
要安装tsql,您可以运行以下命令:
安装SQL二进制文件以在任何PHP版本上进行测试
sudo apt install freetds-bin
Microsoft有我们可以使用的本机驱动程序。 完整说明在这里(Redhat / Ubuntu /其他) 。
该链接还包含在开发人员机器上安装Ms SQL服务器的必需步骤(在Ubuntu上运行,在AWS上不运行,但您可以在那里启动RDS实例)。 它还包含有关如何在数据库中创建测试表和数据以及PHP连接代码的基本说明。
您还可以像下面这样为新版本的PHP安装组件:
sudo apt-get install php7.2-sybase freetds-common libsybdb5
您必须在Linux上为php安装mssql驱动程序。
这是最适合您的教程 。
尝试:对于Ubuntu
sudo apt-get install php5-sybase php5-odbc freetds-common
编辑freetds.conf,然后将MSSQL服务器与此PHP连接。
在搜索并尝试了本文和其他文章中的许多建议并花费了大量时间后,一位同事建议尝试使用ADO。
由于我们已经安装了ADO支持的PHP,因此从字面上看,不到10分钟即可启动并运行。
如果您真的想从Linux PHP连接到MS-SQL,请考虑使用ADO。
有趣的是,这里的每个答案都为该问题提供了一种解决方案,而不是回答所问的哪个是“最佳”解决方案。 不幸的是,OP忘记告诉我们“最佳”的标准是什么。
到目前为止,还没有人提到odbc 。 尽管这既需要配置odbc驱动程序以连接到数据库,又需要启用php扩展名,但是此方法可以将php代码与基础数据库实现最佳隔离,从而使以后移植代码更加容易。
微软提供的php驱动程序应该具有良好的兼容性,但仅支持php v7以上版本。
您可能希望坚持使用Linux发行版提供的功能,以确保您拥有受支持的产品和/或自动补丁管理。 替代odbc的可能是freetds驱动程序,但您没有告诉我们任何有关Linux发行版的信息。
从Microsoft获得sqlsrv扩展名,用于php http://msdn.microsoft.com/zh-cn/sqlserver/ff657782.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.