【问题标题】:Laravel 5.4 Multiple SqlServer Connections with DBLib FreeTDS 8.0Laravel 5.4 与 DBLib FreeTDS 8.0 的多个 SqlServer 连接
【发布时间】:2017-10-05 13:58:27
【问题描述】:

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

使用 tinker 可以在不同的连接上运行查询,但在“浏览器模式”下无法连接到多个连接。

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

    $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->connection 实例的库。

【问题讨论】:

    标签: php sql-server laravel freetds


    【解决方案1】:

    这很奇怪,但是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!");
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2017-10-30
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      相关资源
      最近更新 更多