Laravel 5.4与DBLib FreeTDS 8.0的多个SqlServer连接

时间:2017-05-07 14:43:59

标签: php sql-server laravel freetds

操作系统:debian / contrib-jessie64 SQL Server 2014 Express PHP 5.6 Laravel 5.4

使用修补程序可以在不同的连接上运行查询,但是在"浏览器模式下#34;无法连接到多个连接。

我在某个控制器中有这个:

    $this->saveToAnotherConnection();

    $row = \Contoso\Apartment::findOrNew($this->request['ApartmentID']);
    $row->fill($this->request->all());
    $row->save();

saveToAnotherConnection函数打开PDO连接但抛出异常:

    $this->connection = new \PDO("dblib:host=10.0.1.11;dbname=Contoso", "sa", "sa sa ya tu sa! ya tu sa!");

异常消息:

SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9)

我没有使用Laravel数据库配置,因为我使用的是一个接收$ this->连接实例的库。

1 个答案:

答案 0 :(得分:0)

这很奇怪,但似乎dblib无法识别我的服务器地址或SQLServer实例......真的很奇怪。

设置DSN对我有用。编辑/etc/freetds/freetds.conf并转到文件末尾并放置

[ms-sql]
host = 10.0.1.11
port = 1433
tds version = 8.0

您的DSN名称在括号之间。

然后,使用以下命令连接到您的SQLServer:

 $this->connection = new \PDO("dblib:host=ms-sql;dbname=Contoso", "sa", "sa sa ya tu sa! ya tu sa!");

这对我有用,如果问题仍然存在,请尝试删除并重新安装。