Welcome Guest, Not a member yet? Register   Sign In
CI4: how to check DB connection?
#1

Hi evryone!!! I have small trouble with how to right way check database connection. In my case I do this way:

PHP Code:
public function checkDBConnection( array $DBConfig = [] ) : bool {

        try {

            $result false;

            if( !empty($DBConfig) ) {

                $custom = [

                    'DSN'      => $DBConfig['DNS'],
                    'hostname' => $DBConfig['hostname'],
                    'username' => $DBConfig['username'],
                    'password' => $DBConfig['password'],
                    'database' => $DBConfig['database'],
                    'DBDriver' => $DBConfig['dbdriver'],
                    'DBPrefix' => $DBConfig['prefix'],
                    'pConnect' => false,
                    'DBDebug'  => (ENVIRONMENT !== 'production'),
                    'cacheOn'  => false,
                    'cacheDir' => '',
                    'charset'  => 'utf8',
                    'DBCollat' => 'utf8_general_ci',
                    'swapPre'  => '',
                    'encrypt'  => false,
                    'compress' => false,
                    'strictOn' => false,
                    'failover' => [],
                    'port'     => $DBConfig['port'],
                ];

                $db = \Config\Database::connect($custom);

                if( $db->persistentConnect()->ping() ) {

                    // Connection was successful
                    $result true;
                }
            }

        } finally {

            return $result;
        }
    


But I am not sure in this way. Please need advice or comment with right descision. Thanks
Reply
#2

I don't know that there is a right way, but one possibility is to use \CodeIgniter\Database\Config::getConnections(), which "Returns an array of all db connections currently made."
Reply
#3

(11-20-2019, 09:48 AM)MGatner Wrote: I don't know that there is a right way, but one possibility is to use \CodeIgniter\Database\Config::getConnections(), which "Returns an array of all db connections currently made."

Thanks! I am try it with use db config
Reply
#4

Don't we have a better solution for this? It seems that \CodeIgniter\Database\Config::getConnections() is not returning the actual connections but the predefined connection properties. Even if you input a wrong database name in the .env or Database.php file, it is still getting returned by this function
Reply




Theme © iAndrew 2016 - Forum software by © MyBB