Laravel PostgreSQL PDO 驱动程序问题 - “找不到驱动程序”

问题描述 投票:0回答:1

我面临着 Laravel 和 PostgreSQL 的挑战。每当我尝试使用

php artisan migrate
运行迁移时,我都会遇到“找不到驱动程序”错误。作为 WampServer 的新手,我尝试了一些故障排除步骤,并且希望得到一些指导。

  1. 我确保在
    php.ini
    (
    extension=pdo_pgsql
    ) 中启用了 PostgreSQL PDO 扩展。
  2. 更改后,我重新启动了网络服务器
    php.ini
  3. 我检查了 PostgreSQL PDO 驱动程序是否已使用
    <?php echo info(); ?>
    加载。
  4. 我验证了 PHP 版本兼容性。
  5. 我用
    php artisan config:cache
    清除了 Laravel 配置缓存。

尽管我做出了努力,问题仍然存在。以下是一些其他详细信息:

  • PHP 版本: PHP 8.0.30(cli)
  • Laravel 版本: laravel/framework": "^9.0
  • 操作系统: Windows 11 - WampServer 64x

我还确认我可以使用独立的 PHP 脚本连接到 PostgreSQL 数据库,这表明 PostgreSQL PDO 驱动程序可以正常工作。

<?php
try {
    $pdo = new PDO('pgsql:host=127.0.0.1;port=5432;dbname=mydb', 'postgres', 'r***');
    echo 'Connected successfully';
} catch (PDOException $e) {
    die('Connection failed: ' . $e->getMessage());
}

补充说明:

  • Laravel

    .env
    配置:

    DB_CONNECTION=pgsql
    DB_HOST=127.0.0.1
    DB_PORT=5432
    DB_DATABASE=mydb
    DB_USERNAME=postgres
    DB_PASSWORD=r**
    
  • php artisan migrate
    的输出:

    Illuminate\Database\QueryException: could not find driver (SQL: select * from information_schema.tables where table_catalog = your_database_name and table_schema = public and table_name = migrations and table_type = 'BASE TABLE')
    

任何解决此问题的帮助将不胜感激。 谢谢!

laravel postgresql wamp
1个回答
0
投票

我解决了浏览器和CLI中PHP版本不同引起的问题。这就是我所做的:

  1. 使用

    php --ini
    检查了 CLI PHP 版本。

    Loaded Configuration File: C:\wamp64\bin\php\php8.0.30\php.ini
    
  2. 在 php.ini 文件中取消提交这些行:

    extension=pdo_pgsql
    extension=pgsql
    
  3. 已保存并确保扩展程序处于活动状态。

现在,两个环境都使用相同的 PHP 版本,一切都运行顺利。

© www.soinside.com 2019 - 2024. All rights reserved.