db_connect

  1. drupal
    1. 4.7 database.mysqli.inc
    2. 4.7 database.pgsql.inc
    3. 4.7 database.mysql.inc
    4. 5 database.mysqli.inc
    5. 5 database.pgsql.inc
    6. 5 database.mysql.inc
    7. 6 database.mysql.inc
    8. 6
    9. 6 database.mysqli.inc
Versions
4.7 – 6 db_connect($url)

Initialize a database connection.

Related topics

▾ 1 function calls db_connect()

db_set_active in drupal/includes/database.inc
Activate a database for future queries.

Code

drupal/includes/database.pgsql.inc, line 47

<?php
function db_connect($url) {
  // Check if PostgreSQL support is present in PHP
  if (!function_exists('pg_connect')) {
    _db_error_page('Unable to use the PostgreSQL database because the PostgreSQL extension for PHP is not installed. Check your <code>php.ini</code> to see how you can enable it.');
  }

  $url = parse_url($url);
  $conn_string = '';

  // Decode url-encoded information in the db connection string
  if (isset($url['user'])) {
    $conn_string .= ' user=' . urldecode($url['user']);
  }
  if (isset($url['pass'])) {
    $conn_string .= ' password=' . urldecode($url['pass']);
  }
  if (isset($url['host'])) {
    $conn_string .= ' host=' . urldecode($url['host']);
  }
  if (isset($url['path'])) {
    $conn_string .= ' dbname=' . substr(urldecode($url['path']), 1);
  }
  if (isset($url['port'])) {
    $conn_string .= ' port=' . urldecode($url['port']);
  }

  // pg_last_error() does not return a useful error message for database
  // connection errors. We must turn on error tracking to get at a good error
  // message, which will be stored in $php_errormsg.
  $track_errors_previous = ini_get('track_errors');
  ini_set('track_errors', 1);

  $connection = @pg_connect($conn_string);
  if (!$connection) {
    require_once './includes/unicode.inc';
    _db_error_page(decode_entities($php_errormsg));
  }

  // Restore error tracking setting
  ini_set('track_errors', $track_errors_previous);

  pg_query($connection, "set client_encoding=\"UTF8\"");
  return $connection;
}
?>