PDOException::(“找不到驱动程序”)Laravel和SQL Server

时间:2018-12-19 10:44:53

标签: php sql-server laravel wampserver

我正在尝试将Laravel与多个sqlserver数据库连接,我在我的database.php文件中正确定义了连接:

'connections' => [



    'sqlsrv' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '16000'),
        'database' => env('DB_DATABASE', 'dbname'),
        'username' => env('DB_USERNAME', 'me'),
        'password' => env('DB_PASSWORD', 'me'),
        'charset' => 'utf8',
        'prefix' => '',
        'prefix_indexes' => true,
    ],
    'sqlsrv2' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '16000'),
        'database' => env('DB_DATABASE_2', 'dbname2'),
        'username' => env('DB_USERNAME', 'me'),
        'password' => env('DB_PASSWORD', 'me'),
        'charset' => 'utf8',
        'prefix' => '',
        'prefix_indexes' => true,
    ],

],

并设置我的.env文件

DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=16000
DB_DATABASE=dbname
DB_USERNAME=me
DB_PASSWORD=me

我尝试验证从另一个应用程序到我的sql server数据库的连接,并且它工作正常。然后我在laravel应用程序上创建了一个模型,一旦我输入php artisan migration,就会收到此错误: enter image description here

任何人都可以帮助解决此问题吗?

更新!

在将pdo sqlsrv扩展名添加到我的ext文件夹和php.ini中之后,出现此错误: [![在此处输入图片描述] [2]] [2]

[![在此处输入图片描述] [3]] [3]

更新3:

在安装odbc 13之后,我遇到了这个问题 enter image description here

1 个答案:

答案 0 :(得分:2)

嗯,WAMPServer有2个单独的php.ini文件。

一个在Apache下由PHP使用,另一个在PHP CLI中使用。

我看到您正在使用CLI,因此您需要检查是否已在CLI php.ini文件中包含SQL Server驱动程序扩展。

您将在以下位置找到

C:\wamp64\bin\php\php{version}\php.ini

您必须手动进行编辑,没有菜单链接可以执行此操作,用于编辑php.ini的菜单链接只能编辑Apache版本php.ini下的PHP

  

请确保您在与该项目中实际使用的PHP版本匹配的文件夹中编辑php.ini文件,因为您当然可以在WAMPServer下安装多个PHP版本

更新:第二个问题

您已将32位和64位SQL Server驱动程序添加到ext文件夹中!

您的WAMPServer菜单显示

1. php_sqlsrv_72_ts_x64 
2. php_sqlsrv_72_ts_x32
3. php_pdo_sqlsrv_72_ts_x64 
4. php__pdo_sqlsrv_72_ts_x32
  

在使用64位Wamp时,您应该只使用这2个

1. php_sqlsrv_72_ts_x64 
2. php_pdo_sqlsrv_72_ts_x64