【问题标题】:PDO Exception "Could not find driver" errorPDO 异常“找不到驱动程序”错误
【发布时间】:2020-09-23 00:40:27
【问题描述】:

我是 Laravel 的新手。从过去 2 天开始,我正在尝试将数据库从 laravel 迁移到 xampp。但每次我收到 PDO 异常“找不到驱动程序”错误。我收到 2 个错误:

1 C:\xampp\htdocs\student\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDOException::("could not find driver")

  2   C:\xampp\htdocs\student\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=student", "root", "", [])


could not find driver (SQL: select * from information_schema.tables where table_schema = student and table_name = migrations and table_type = 'BASE TABLE')

我在 stackoverflow 和许多其他网站上搜索它并获得了许多解决方案,但它对我不起作用。我仍然收到这些错误。
我还添加了我从 stackoverflow 的多个解决方案中获得的所有必需的扩展。但它仍然无法正常工作。无论我做什么,我都会附上代码。谁能帮我找出我在这方面做错了什么?提前致谢!!!

2020_06_04_052746_create_student_table.php

 public function up()
    {
        Schema::create('student', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email');
            $table->string('class');
            $table->int('pnumber');
            $table->timestamps();
        });
    }

php.ini

;
extension=bz2
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd2
extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop
extension=php_pdo_mysql.dll
extension=php_mysql

.env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:v1jSrBPyR1wLOC96ePXWY0RRoTVuzNE3h+BB68RNqwI=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=student
DB_USERNAME=root
DB_PASSWORD=

执行 php --ini 命令后

Configuration File (php.ini) Path: C:\WINDOWS
Loaded Configuration File:         C:\php\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

【问题讨论】:

  • 你清除缓存了吗?
  • @Cid 缓存是什么意思? %temp% 个文件?
  • @Cid 清除缓存。仍然出错
  • 也许检查一下,您编辑的 php.ini 是否是 php 实际使用的,通过添加带有 phpinfo() 的 phpinfo.php (不要忘记删除)或调用 cli 命令@ 987654327@

标签: php laravel laravel-5 pdo xampp


【解决方案1】:

在 Ubuntu/Debian 中你可以使用:

PHP5: sudo apt-get install php5-mysql
PHP7: sudo apt-get install php7.0-mysql

在 Windows 中转到 php.ini 并 (;) 从这些行中删除它:

extension=php_pdo.dll
extension=php_pdo_mysql.dll
OR:

extension=pdo.dll
extension=pdo_mysql.dll

【讨论】:

    【解决方案2】:

    我正在使用 laragon FOR LARAVEL 并且遇到了同样的问题,但是...

    撤消除 THE 之外的所有扩展

    extension=pdo_mysql

    因为最新版本的编码没有'php_pdo_mysql & other .dll'文件&我猜我已经编译了。 特别是 {{PDO_****}} 禁用它们并启用上面的代码..和';'

    通过这样做,您可以将您的 utf8mbg 更改为 utf8,分别针对字符集和排序规则:

    在 app\config\database.php 内 将默认设置为“mysql”。

    -------->>app\config\database.php & 设置默认为'mysql'

    'mysql' => [ **** 其他都一样,改如下]

        'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            
    

    【讨论】:

      猜你喜欢
      • 2012-12-09
      • 2019-07-01
      • 2012-07-10
      • 2019-09-07
      • 2015-09-11
      • 2013-11-19
      • 2013-03-09
      相关资源
      最近更新 更多