繁体   English   中英

基于Linux的PHP安装连接到MsSQL Server

[英]Linux based PHP install connecting to MsSQL Server

在Linux机器上通过PHP连接到远程Microsoft SQL Server的最佳方法是什么。

PHP将只能在Linux机器上运行。

我一直在寻找最简单的答案已有一段时间了。

5.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);

您可以在命令行中使用类似以下的方法对MsSQL进行故障排除:

tsql -H your.server.name -p 1433 -U yourusername -P yourpassword -D yourdatabasename

要安装tsql,您可以运行以下命令:

安装SQL二进制文件以在任何PHP版本上进行测试

sudo apt install freetds-bin

PHP 7+

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM