【问题标题】:Laravel 8 on Windows and Xampp PDO not foundWindows 上的 Laravel 8 和 Xampp PDO 未找到
【发布时间】:2021-07-23 08:22:43
【问题描述】:

我在 Windows 10 上有 Xampp 并在其上启动了 apached。我的项目是在Laravel 8 完成的。我想在控制器中使用PDO

$pdo = DB::connection('mysqlPDO')->getPdo();

$stmt = $pdo->prepare("SELECT * FROM `form_data` WHERE `id`=:id LIMIT 1");
$stmt->bindValue(':id', 1, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll();
$stmt->closeCursor();
unset($stmt);

当我运行上面的代码时,我得到了错误:

 Class 'App\Console\Commands\PDO' not found

  at C:\xampp\htdocs\crm-api\app\Console\Commands\Import.php:58
     54▕
     55▕         $pdo = DB::connection('mysqlPDO')->getPdo();

Xampp 的 php.ini 中我有扩展:

;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite

当我取消注释例如 pdo_oci 时,我收到错误: Xampp start error


我将php_pdo.dll 下载到xampp/php/ext 文件夹中并将extension=pdo 添加到php.ini 但仍然有同样的错误

【问题讨论】:

    标签: laravel pdo xampp


    【解决方案1】:

    首先,如果你不使用多个数据库连接,你应该使用(可以了解更多here

    $pdo = DB::connection()->getPdo();
    

    其次,检查.env文件中的数据库信息,你可以运行迁移吗?

    之后,如果你不能启用任何扩展,你应该检查XAMPP的目录,然后是php/ext文件夹,看看是否有你的扩展的.dll文件,如果没有,你应该手动安装。

    P.S.:另外请检查您是否取消注释以下扩展并重新启动 apache 服务器。

    extension=pdo
    

    【讨论】:

    • 我正在使用多个数据库连接并且它可以工作。问题在于扩展。我下载了php_pdo.dll 并放在xampp/php/ext 文件夹中。当我将extension=pdo 添加到 php.ini 文件时,出现上述错误
    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 2014-02-09
    • 2016-11-06
    • 2021-04-08
    • 2021-08-06
    • 2011-11-25
    相关资源
    最近更新 更多