带有mssql(sqlsrv)的Laravel未连接


Laravel with mssql (sqlsrv) not connecting

我正在用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'   => '',
    ),

但是它显示错误说

PDO异常找不到驱动程序

所以请有人帮我解决这个问题吗?感谢

你在用宅地吗?我在使用MAMP时也遇到了同样的问题。我的服务器上的驱动程序不见了,所以我最终切换到了homes并在那里安装了免费的td。

对于Linux家园:首先,将ssh从Homestead文件夹中放入您的箱子中。

命令:流浪者ssh

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

然后在ssh上运行php-m以确保pdodblib处于启用状态。

对于Windows:您需要手动安装此扩展。您可以从[Microsoft的网站][1]下载驱动程序。

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

extension=php_sqlsrv.dll

并重新启动您的Apache

扩展@AmitSchaudhary的答案:

对于使用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

请确保将版本号更改为您正在使用的版本号。

  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

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

  1. 转到模块文件夹:
    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服务器,你应该可以开始了!

我确实只是这么做了,但很难找到一个像样的演练来充实我的记忆,所以希望这能在未来帮助其他人(或者可能是我)。

干杯GB。