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 * fromlist
)。你能给我解决方案我应该怎么做才能修复它? (仍然是相同的代码)
请尝试使用 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。”