检查数据库连接是否建立/存在 Ci4

Checking if database connection established / exists Ci4

我正在尝试检查 ID 数据库连接是否存在,然后重定向到用户可以通过表单输入创建数据库的页面。

这是我尝试过但没有成功的方法。

public function index()
{
    // $database = \Config\Database::connect();
    $database = \CodeIgniter\Database\Config::getConnections();

    if ($database) 
    {
        //db connection initialized
        return view('dashboard');
    }
    else
    {
        //db connection  not initialized
        return redirect('db_setup');
    }

}

您在重定向函数中有语法错误,我不确定您在那里实现的 getconnections 函数是什么,但 connect () 会起作用。查看更新后的代码

$database = \Config\Database::connect();
    if ($database) 
    {
        //db connection initialized
        return view('dashboard');
    }
    else
    {
        //db connection  not initialized
        return redirect()->to('db_setup');
    }

使用来自 Virender Kumar 的代码,但根据您对 dbname 验证的请求对其进行扩展,使用如下内容:

$database = \Config\Database::connect();
if ($database) 
{
    // check if db exists:
    if($database->query("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='yourDbName'")) {
        //db connection initialized
        return view('dashboard');
    } else {
        return false; // db not exist
    }
} else {
    //db connection  not initialized
    return redirect()->to('db_setup');
}

说明:我添加了一个 CodeIgniter 4 原始查询 $db->query() 从数据库中选择一般信息模式。如果数据库不存在,你会得到一个错误。