protected function check_database_data($dbms, $dbhost, $dbport, $dbuser, $dbpass, $dbname, $table_prefix)
{
$available_dbms = $this->database_helper->get_available_dbms();
$data_valid = true;
// Check if PHP has the database extensions for the specified DBMS
if (!isset($available_dbms[$dbms])) {
$this->io_handler->add_error_message('INST_ERR_NO_DB');
$data_valid = false;
}
// Validate table prefix
$prefix_valid = $this->database_helper->validate_table_prefix($dbms, $table_prefix);
if (is_array($prefix_valid)) {
foreach ($prefix_valid as $error) {
$this->io_handler->add_error_message($error['title'], isset($error['description']) ? $error['description'] : false);
}
$data_valid = false;
}
// Try to connect to database if all provided data is valid
if ($data_valid) {
$connect_test = $this->database_helper->check_database_connection($dbms, $dbhost, $dbport, $dbuser, $dbpass, $dbname, $table_prefix);
if (is_array($connect_test)) {
foreach ($connect_test as $error) {
$this->io_handler->add_error_message($error['title'], isset($error['description']) ? $error['description'] : false);
}
$data_valid = false;
}
}
return $data_valid;
}