我正在尝试检查是否在Laravel中连接了数据库。
我查看了文档并且无法找到任何内容。我发现的最接近的是this,但这并不能解决我的问题。
我有三个在不同机器上设置的MySQL实例。以下是我想要实现的简化版本。
要清楚,有没有办法检查Laravel 5.1中是否连接了数据库?
答案 0 :(得分:83)
尝试获取基础PDO实例。如果 失败,则Laravel无法连接到数据库!
// Test database connection
try {
DB::connection()->getPdo();
} catch (\Exception $e) {
die("Could not connect to the database. Please check your configuration. error:" . $e );
}
答案 1 :(得分:33)
您可以与Artisan一起使用alexw's解决方案。在命令行中运行以下命令。
php artisan tinker
DB::connection()->getPdo();
如果连接正常,您应该看到
CONNECTION_STATUS:"连接正常;等待发送。",
接近答复结束。
答案 2 :(得分:10)
您可以在控制器方法或路径的内联函数中使用它:
try {
DB::connection()->getPdo();
if(DB::connection()->getDatabaseName()){
echo "Yes! Successfully connected to the DB: " . DB::connection()->getDatabaseName();
}else{
die("Could not find the database. Please check your configuration.");
}
} catch (\Exception $e) {
die("Could not open connection to database server. Please check your configuration.");
}
答案 3 :(得分:3)
您可以使用此查询来检查laravel中的数据库连接:
$pdo = DB::connection()->getPdo();
if($pdo)
{
echo "Connected successfully to database ".DB::connection()->getDatabaseName();
} else {
echo "You are not connected to database";
}
有关详细信息,请查看此页面https://laravel.com/docs/5.0/database。
答案 4 :(得分:0)
当Laravel尝试连接到数据库时,如果连接失败或发现任何错误,它将返回PDOException
错误。我们可以捕获此错误并重定向操作
在app/filtes.php
文件中添加以下代码。
App::error(function(PDOException $exception)
{
Log::error("Error connecting to database: ".$exception->getMessage());
return "Error connecting to database";
});
希望这有用。
答案 5 :(得分:0)
您还可以运行以下命令:
php artisan migrate:status
建立数据库连接以从迁移表中获取迁移。如果连接失败,它将引发异常。