【发布时间】:2020-12-28 23:37:37
【问题描述】:
我正在尝试从posts 表中获取数据,但我收到一条错误消息:
PostsController.php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class PostsController extends Controller
{
public function show( $slug ) {
$posts = DB::table('posts')->get();
dd($posts);
}
}
.env 文件
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
但我收到此错误:
SQLSTATE[HY000] [2002] 连接被拒绝(SQL: select * from
posts)
我尝试访问的网址:
查看可分享的 laravel 错误消息:
https://flareapp.io/share/xPQr0171#F54
更新:
运行php artisan migrate后收到的错误消息
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
667▕ // If an exception occurs when attempting to run a query, we'll format the error
668▕ // message to include the bindings with SQL, which will make this exception a
669▕ // lot more helpful to the developer instead of just the database's errors.
670▕ catch (Exception $e) {
➜ 671▕ throw new QueryException(
672▕ $query, $this->prepareBindings($bindings), $e
673▕ );
674▕ }
675▕
+37 vendor frames
38 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
原始代码
<?php
$servername = "localhost";
$username = "root";
$password = "root";
try {
$conn = new PDO("mysql:host=$servername;dbname=laravel", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
【问题讨论】:
-
如果您使用 PhpMyAdmin 或 HeidiSQL 或 MySqlWorkbenck 或其他任何方式尝试使用您的凭据,它们是否有效?
-
我已经检查了与原始代码的连接。它在那里工作。
-
为什么人们提供负面标记???我是 laravel 的新手。
-
您是否在 PHP 中启用了正确的 PDO 扩展?
-
是的,我已经启用了。