function install_database_errors

Same name in other branches
  1. 7.x includes/install.core.inc \install_database_errors()
  2. 8.9.x core/includes/install.core.inc \install_database_errors()
  3. 10 core/includes/install.core.inc \install_database_errors()
  4. 11.x core/includes/install.core.inc \install_database_errors()

Checks a database connection and returns any errors.

3 calls to install_database_errors()
install_check_requirements in core/includes/install.core.inc
Checks installation requirements and reports any errors.
install_verify_database_settings in core/includes/install.core.inc
Verifies that settings.php specifies a valid database connection.
SiteSettingsForm::getDatabaseErrors in core/lib/Drupal/Core/Installer/Form/SiteSettingsForm.php
Get any database errors and links them to a form element.

File

core/includes/install.core.inc, line 1194

Code

function install_database_errors($database, $settings_file) {
    $errors = [];
    // Check database type.
    $database_types = drupal_get_database_types();
    $driver = $database['driver'];
    if (!isset($database_types[$driver])) {
        $errors['driver'] = t("In your %settings_file file you have configured @drupal to use a %driver server, however your PHP installation currently does not support this database type.", [
            '%settings_file' => $settings_file,
            '@drupal' => drupal_install_profile_distribution_name(),
            '%driver' => $driver,
        ]);
    }
    else {
        // Run driver specific validation
        $errors += $database_types[$driver]->validateDatabaseSettings($database);
        if (!empty($errors)) {
            // No point to try further.
            return $errors;
        }
        // Run tasks associated with the database type. Any errors are caught in the
        // calling function.
        Database::addConnectionInfo('default', 'default', $database);
        $errors = db_installer_object($driver, $database['namespace'] ?? NULL)->runTasks();
    }
    return $errors;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.