3

我正在使用 mysql 开发 laravel,它运行良好。但我现在有另一种情况。我需要将 laravel 连接到位于 windows 服务器上的 ms sql 数据库。我使用以下代码连接到数据库 app/config/database.php

'default' => 'sqlsrv',

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

但它显示错误说

PDOException 找不到驱动程序

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

4

3 回答 3

4

你在用宅基地吗?我有同样的问题,使用 MAMP。我的服务器缺少驱动程序,所以我最终切换到宅基地并在那里安装freetds

于 2016-03-29T15:00:14.443 回答
1

对于 Linux homestead: 首先,从 Homestead 文件夹 ssh 进入你的 box vagrant ssh。

命令:流浪者ssh

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

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

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

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

扩展=php_sqlsrv.dll

并重新启动您的 Apache

于 2016-04-06T11:17:00.043 回答
-1

扩展@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

确保将版本号更改为您使用的任何版本。

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

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

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

  4. 转到 MSSQL 扩展文件夹:
    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 中,查找 Edit Templates 菜单选项(取决于 MAMP 的版本,它应该位于 MAMP 菜单下或通过按钮在 MAMP Pro 中可用)

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

  5. 重新启动您的 MAMP Apache 服务器,您应该一切顺利!

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

干杯GB。

于 2016-12-20T16:11:05.240 回答