diff --git a/includes/database.mysql.inc b/includes/database.mysql.inc index 7b307a3c5f5c31bc52538a51cde9e9e53c52deba..8f96dc3bb444805fad545966ce95114049d4acd0 100644 --- a/includes/database.mysql.inc +++ b/includes/database.mysql.inc @@ -21,6 +21,15 @@ * (e.g. your database and web server live on different machines). */ function db_connect($url) { + // Check if MySQL support is present in PHP + if (!function_exists('mysql_connect')) { + drupal_maintenance_theme(); + drupal_set_title('PHP MySQL support not enabled'); + print theme('maintenance_page', '<p>We were unable to use the MySQL database because the MySQL extension for PHP is not installed. Check your <code>PHP.ini</code> to see how you can enable it.</p> +<p>For more help, see the <a href="http://drupal.org/node/258">Installation and upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.</p>'); + exit; + } + $url = parse_url($url); // Allow for non-standard MySQL port. diff --git a/includes/database.mysqli.inc b/includes/database.mysqli.inc index 779a4a909d92184886b93caa6d2eff68d2b4bde6..f96f8965983af0d5539e97614fdd5bcd80b24dc3 100644 --- a/includes/database.mysqli.inc +++ b/includes/database.mysqli.inc @@ -21,6 +21,15 @@ * Note that mysqli does not support persistent connections. */ function db_connect($url) { + // Check if MySQLi support is present in PHP + if (!function_exists('mysqli_init')) { + drupal_maintenance_theme(); + drupal_set_title('PHP MySQL support not enabled'); + print theme('maintenance_page', '<p>We were unable to use the MySQL database because the MySQLi extension for PHP is not installed. Check your <code>PHP.ini</code> to see how you can enable it.</p> +<p>For more help, see the <a href="http://drupal.org/node/258">Installation and upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.</p>'); + exit; + } + $url = parse_url($url); // Allow for non-standard MySQL port. diff --git a/includes/database.pgsql.inc b/includes/database.pgsql.inc index 4cfa74f829cda6a4a547c475b407c28f83fdda1b..89b693bab191c305400ada434238e6a5d4979e96 100644 --- a/includes/database.pgsql.inc +++ b/includes/database.pgsql.inc @@ -21,6 +21,15 @@ * (e.g. your database and web server live on different machines). */ function db_connect($url) { + // Check if MySQL support is present in PHP + if (!function_exists('pg_connect')) { + drupal_maintenance_theme(); + drupal_set_title('PHP PostgreSQL support not enabled'); + print theme('maintenance_page', '<p>We were 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.</p> +<p>For more help, see the <a href="http://drupal.org/node/258">Installation and upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.</p>'); + exit; + } + $url = parse_url($url); $conn_string = ' user='. $url['user'] .' dbname='. substr($url['path'], 1) .' password='. $url['pass'] . ' host=' . $url['host'];