【问题标题】:Laravel PDO could not find driverLaravel PDO 找不到驱动
【发布时间】:2016-12-15 14:35:01
【问题描述】:

我正在尝试使用我的 Laravel 项目设置 SQL Server 数据库。

我做过的事情:

  • 从 Microsoft 站点下载 DLL(我的 php 5.6.25 的版本 32)并将它们复制到我的 php /ext 文件夹中。
  • 在我的 PHP.INI 文件中添加了 extension=php_sqlsrv_56_nts.dllextension=php_pdo_sqlsrv_56_nts.dll(并且扩展名显示在我的 phpinfo() 中)。李>
  • 将我的database.php 配置文件更改为'default' => env('DB_CONNECTION', 'sqlsrv')

但是:当我尝试迁移我的数据库时出现错误:

[PDOException] 
could not find driver

有什么我错过的吗?我必须重新检查一些错误的配置?

有什么想法吗?

谢谢!

编辑 1: 我在 Win7 x64 操作系统上使用 Wamp x32。

编辑 2: 这是我使用“-vvv”运行迁移时遇到的错误

Exception trace:
 () at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:55
 PDO->__construct() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:55
 Illuminate\Database\Connectors\Connector->createConnection() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Connectors\SqlServerConnector.php:32
 Illuminate\Database\Connectors\SqlServerConnector->connect() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Connectors\ConnectionFactory.php:61
 Illuminate\Database\Connectors\ConnectionFactory->Illuminate\Database\Connectors\{closure}() at n/a:n/a call_user_func() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Connection.php:924
 Illuminate\Database\Connection->getPdo() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\DatabaseConnection.php:792
 Illuminate\Database\Connection->reconnectIfMissingConnection() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Connection.php:677
 Illuminate\Database\Connection->run() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Connection.php:349
 Illuminate\Database\Connection->select() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Schema\Builder.php:55
 Illuminate\Database\Schema\Builder->hasTable() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Migrations\DatabaseMigrationRepository.php:141
 Illuminate\Database\Migrations\DatabaseMigrationRepository->repositoryExists()at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Migrations\Migrator.php:404 Illuminate\Database\Migrations\Migrator->repositoryExists() at C:\wamp\www\mentoringsecure_html\vendor\laravel\framework\src\Illuminate\Database\Console\Migrations\MigrateCommand.php:103
 Illuminate\Database\Console\Migrations\MigrateCommand->prepareDatabase() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Database\Console\Migrations\MigrateCommand.php:58
 Illuminate\Database\Console\Migrations\MigrateCommand->fire() at n/a:n/a call_user_func_array() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Container\Container.php:507
 Illuminate\Container\Container->call() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Console\Command.php:169
 Illuminate\Console\Command->execute() at C:\wamp\www\mentoring\secure_html\vendor\symfony\console\Command\Command.php:256
 Symfony\Component\Console\Command\Command->run() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Console\Command.php:155
 Illuminate\Console\Command->run() at C:\wamp\www\mentoring\secure_html\vendor\symfony\console\Application.php:794
 Symfony\Component\Console\Application->doRunCommand() at C:\wamp\www\mentoring\secure_html\vendor\symfony\console\Application.php:186
 Symfony\Component\Console\Application->doRun() at C:\wamp\www\mentoring\secure_html\vendor\symfony\console\Application.php:117
 Symfony\Component\Console\Application->run() at C:\wamp\www\mentoring\secure_html\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php:107
 Illuminate\Foundation\Console\Kernel->handle() at C:\wamp\www\mentoring\secure_html\artisan:36

【问题讨论】:

  • 你在哪个操作系统上?
  • 我在 Win7 x64 操作系统上使用 Wamp x32。
  • 你更新了 .env 文件了吗?
  • ok 检查扩展是否在phpinfo()中正确加载,如果加载了就可以使用了
  • .env 文件已更新,扩展名显示在 phpinfo()

标签: php sql-server laravel pdo


【解决方案1】:

首先:下载正确的dll(对应你的php版本) -php_pdo_sqlsrv.dll -php_sqlsrv.dll 然后:把它们放在 wamp/bin/php/php_yourversion/ext 最后:在 两个 php.ini 上启用扩展 - Wamp 使用一个 php.ini => 浏览器 - PHP 使用另一个 php.ini => 作为终端

【讨论】:

    猜你喜欢
    • 2019-09-07
    • 2015-09-11
    • 2020-11-08
    • 2016-08-05
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2014-07-23
    相关资源
    最近更新 更多