Laravel 8 - 找不到驱动程序:Illuminate\Database\QueryException 找不到驱动程序(SQL:select * from `list`)

Posted

技术标签:

【中文标题】Laravel 8 - 找不到驱动程序:Illuminate\\Database\\QueryException 找不到驱动程序(SQL:select * from `list`)【英文标题】:Laravel 8 - Could not find driver : Illuminate\Database\QueryException could not find driver (SQL: select * from `list`)Laravel 8 - 找不到驱动程序:Illuminate\Database\QueryException 找不到驱动程序(SQL:select * from `list`) 【发布时间】:2021-06-10 11:49:24 【问题描述】:

我已经在我的 Linux Mint 20 上安装了 Laravel 8 用于我的个人实验,所以我是 Laravel 新版本的新手。我已经搜索了许多来源如何使用 CRUD 方法显示表格,以便表格显示在 Web 中,其中包含来自 mysql 数据库的数据

但是当我尝试使用 CRUD 方法显示表格时,它看起来像这样:

照亮\数据库\查询异常 找不到驱动程序 (SQL: select * from list)

在 localhost:8000/home/tabel

我试图通过修复.env文件、控制器文件、刀片文件和web.php来解决这个问题,但它仍然是错误的。

这是我的配置文件,我已经更改如下:

.env

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=people
DB_USERNAME=root
DB_PASSWORD=

homeController.php

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class homeController extends Controller

    public function home()
    
        return "home";
    

    public function tabel()
    
        $tabelku = DB::table('list')->get();
        return view('tabel', ['people' => $tabelku]);
    


tabel.blade.php

<!DOCTYPE html>
<html>

    <head>
        <title>Table</title>
    </head>

    <body>
        <div align="center">
            <table border = "1">
                <tr>
                    <th>No</th>
                    <th>Name</th>
                    <th>Age</th>
                    <th>Hobby</th>
                </tr>

                @foreach($tabelku as $t)
                <tr>
                    <th>$t->no</th>
                    <th>$t->name</th>
                    <th>$t->age</th>
                    <th>$t->hobby</th>
                </tr>
                @endforeach
            </table>
        </div>
    </body>
</html>

然后是 web.php

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () 
    return view('welcome');
);

Route::get('/hello', function () 
    return 'Halo Dunia';
);

Route::get('/home','homeController@home');

Route::get('/home/tabel','homeController@tabel');

这是我用来显示 CRUD 方法的表的数据库和表 ->

对于 MySQL 数据库,我使用 XAMPP

谁能解释为什么这是错误并给我解决方案我应该怎么做才能修复它?

【问题讨论】:

"could not find driver" 表示 PHP 找不到 mysql / pdo_mysql 扩展。您必须在 php.ini 中启用它 【参考方案1】:

只需为 PHP-MySQL 安装适当的驱动程序:

# default
sudo apt install php-mysql
# for specific version of php (e.g. php7.4)
sudo apt install php7.4-mysql

重启你的服务器:

# apache
sudo systemctl restart apache2
# nginx
sudo systemctl restart nginx

【讨论】:

在我安装 PHP-MySQL 后它终于可以工作了,所以“找不到驱动程序错误”不再存在。但是现在我仍然无法显示表格,因为出现了一个新错误:Illuminate\Database\QueryException SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from list)。你能给我解决方案我应该怎么做才能修复它? (仍然是相同的代码) 请尝试使用 DB_HOST=127.0.0.1 而不是 DB_HOST=localhost,然后不要忘记刷新缓存(php artisan config:cache) 好的,它可以工作并且“没有这样的文件或目录”错误不再存在,然后当我尝试刷新时,又出现了一个新错误:ErrorException Undefined variable: tabelku (View: /opt /lampp/htdocs/isidata/resources/views/tabel.blade.php)在localhost:8000/home/tabel。你能给我解决方案我应该怎么做才能修复它? (在 homeController.php、tabel.blade.php 和 web.php 中仍然使用相同的代码) 在您的控制器中将 'people' 替换为 'tabelku' 是的,它有效。最后表格显示出来,不再出现错误。非常感谢:)

以上是关于Laravel 8 - 找不到驱动程序:Illuminate\Database\QueryException 找不到驱动程序(SQL:select * from `list`)的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel-8 中找不到 Laravel PHP 错误 404 [重复]

Laravel 8:找不到类'App\Policies\Gate'

Laravel 8“在此服务器上找不到请求的资源 /dashboard。”

找不到'Carbon Traits ObjectInitialisation'laravel5.8

如何解决 laravel 中“找不到驱动程序”?

Laravel - 找不到列:'full_name'