我正在尝试将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,就会收到此错误:
任何人都可以帮助解决此问题吗?
更新!
在将pdo sqlsrv扩展名添加到我的ext文件夹和php.ini中之后,出现此错误: [![在此处输入图片描述] [2]] [2]
[![在此处输入图片描述] [3]] [3]
更新3:
答案 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