Laravel与mssql(sqlsrv)无法连接

时间:2015-04-04 06:13:40

标签: php laravel laravel-4 mssql-jdbc

我正在使用mysql进行laravel工作正常。但我现在有另一种情况。我需要将laravel连接到驻留在Windows服务器上的ms sql数据库。我使用以下代码连接到DB app / config / database.php

'default' => 'sqlsrv',

'sqlsrv' => array(
        'driver'   => 'sqlsrv',
        'host'     => 'IP ADDRESS',
        'database' => 'DB Name',
        'username' => 'Username',
        'password' => 'password',
        'prefix'   => '',
    ),

但显示错误说

PDOException 找不到驱动程序

那么请任何人帮我解决这个问题吗? 谢谢

3 个答案:

答案 0 :(得分:4)

你正在使用宅基地吗? 我使用MAMP时遇到了同样的问题。我的服务器上缺少驱动程序,因此我最终切换到宅基地并在那里安装freetds

答案 1 :(得分:1)

对于Linux宅基地: 首先,从Homestead文件夹中ssh到你的box vagrant ssh。

命令:vagrant ssh

安装Sybase软件包以启用对PDO和Mssql的支持。命令:sudo apt-get install php7.0-sybase

然后在ssh上运行php -m以确保启用pdo_dblib。

适用于Windows: 您需要手动安装此扩展程序。您可以从[微软网站] [1]下载驱动程序。

解压缩文件后,请将它们复制到PHP的ext目录中。要使PHP加载扩展,只需将以下行添加到PHP.ini(这是针对PHP的非线程安全版本,当您安装PHP以使用IIS FastCGI时,您最有可能使用该版本,我们建议) :

延长= php_sqlsrv.dll

重新启动Apache

答案 2 :(得分:0)

延长@AmitChaudhary的答案:

对于使用MAMP的Mac OSX

  1. 使用Homebrew(最简单的选项)下载并安装先决条件:
    FreeTDS:brew install freetds
    autconf:brew install autoconf

  2. 下载PHP版源代码(我使用的是5.6.27):http://php.net/releases/

  3. 提取源,打开终端,然后转到命令行中的文件夹

  4. (可选)暂时将MAMP的PHP安装添加到路径中:
    export PATH=/Applications/MAMP/bin/php/php5.6.27/bin:$PATH

  5. 请务必将版本号更改为您正在使用的版本号。

    1. 键入which phpize以确认它正在使用您的MAMP安装PHP

    2. 配置并制作下载的PHP源代码:
      ./configure --without-iconv && make

    3. 转到下载的PHP源的Extensions文件夹:
      cd ext

    4. 转到MSSQL Extension文件夹:
      cd mssql

    5. 运行phpize

    6. 使用FreeTDS配置扩展:
      ./configure --with-mssql=/usr/local/Cellar/freetds/1.00.23/ && make

    7. 确认这是否是您正确的FreeTDS版本,如果找不到它会给您一个错误。

      1. 转到Modules文件夹:
        cd modules

      2. mssql.so模块复制到您的MAMP的扩展文件夹(对我而言)是:
        cp mssql.so /Applications/MAMP/bin/php/php5.6.27/lib/php/extensions/no-debug-non-zts-20131226/

      3. 在MAMP中,查找“编辑模板”菜单选项(取决于MAMP的版本,它应位于MAMP菜单下或通过按钮在MAMP Pro中可用)

      4. 查找; Extensions并在本部分的底部添加:
        extension=mssql.so

      5. 重启你的MAMP Apache服务器,你应该好好去!

      6. 我确实只是做了这个,但努力找到一个体面的演练来记住我的记忆,所以希望这将有助于其他人(或可能是我)。

        干杯 GB。