【发布时间】:2017-11-05 06:48:29
【问题描述】:
安装dll's 以与MSSqL 服务器一起使用后,命令php artisan migrate 运行正确,并且在db 中创建了表格。所以我认为该连接适用于该应用程序。
然后我使用命令php artisan make:auth(不使用数据库连接)来搭建身份验证文件。
现在,当我尝试注册任何人时,我得到了错误:
PDOExeption (1/2)
找不到驱动程序
和
PDOExeption (2/2)
找不到驱动程序(从.....选择计数(*)
现在我尝试查看使用cli 命令是否仍然有效,php artisan migrate:rollback 和php artisan migrate 是否仍然有效。
环境: 安装了 xampp 的 Windows 7。 版本:Laravel 5.4、php 7.1
没关系,但这里是我的 .env 和 database.php 文件的一部分:
`database.php`
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', '10.0.0.40'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'sqlcon'),
'username' => env('DB_USERNAME', 'sa'),
'password' => env('DB_PASSWORD', 'test'),
'charset' => 'utf8',
'prefix' => '',
],
`.env`
DB_CONNECTION=sqlsrv
DB_HOST=10.0.0.40
DB_PORT=1433
DB_DATABASE=sqlcon
DB_USERNAME=sa
DB_PASSWORD=test
那么为什么cli 命令有效而浏览器却无效呢?
难道 laravel 不是对 cli 和浏览器连接使用相同的配置吗?
更新:添加了一些额外信息
C:\xampp\htdocs\sqlcon>php --ini
配置文件 (php.ini) 路径:C:\Windows
加载的配置文件:C:\xampp\php\php.ini
扫描其他 .ini 文件:(无)
解析的其他 .ini 文件:(无)
使用this 显示我的php 配置,它显示:
加载的配置文件 C:\xampp\php\php.ini
php -m 命令显示:
C:\xampp\htdocs\sqlcon>php -m
[PHP 模块]
bcmath
...(其他一些)
pdo_mysql
pdo_sqlite
pdo_sqlsrv(这个是开启的)
法尔
...
[Zend 模块]
根据php -m,pdo_sqlsrv 已启用,但我在phpinfo 页面中找不到对它的任何引用。
【问题讨论】:
-
cli和webserver使用的是同一个
php.ini吗? -
我想是这样,但我不确定。我怎样才能知道?请记住我正在使用 laravel(所以我认为他们应该都使用相同的)和 afaik 我只有一个
php.ini -
您可以尝试在 cli 上运行
php -m并使用phpinfo()创建一些路由以确认是否为两者加载了扩展 -
我认为他们不使用相同或网络服务器找不到驱动程序,请参阅我的编辑。
-
phpinfo()是否说php.inixampp 正在使用什么?好久没用xampp了,不过提醒一下那是apache的另一个文件
标签: php sql-server driver laravel-5.4