aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatdenice <patdenice@piwigo.org>2010-03-21 21:15:54 +0000
committerpatdenice <patdenice@piwigo.org>2010-03-21 21:15:54 +0000
commit54c9ceb0f4890c7f183842f9c3adefaad64c471b (patch)
tree95cbae46dfba49cdc9c7599e8c2fcaf35b8f6ed3
parent62ce6a7f152439d33b18363daf400818002b9234 (diff)
feature 1255: add pwg_select_db function.
git-svn-id: http://piwigo.org/svn/trunk@5230 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--include/common.inc.php4
-rw-r--r--include/dblayer/functions_mysql.inc.php10
-rw-r--r--include/dblayer/functions_pdo-sqlite.inc.php9
-rw-r--r--include/dblayer/functions_pgsql.inc.php9
-rw-r--r--include/dblayer/functions_sqlite.inc.php9
-rw-r--r--install.php17
-rw-r--r--upgrade.php4
-rw-r--r--upgrade_feed.php4
8 files changed, 47 insertions, 19 deletions
diff --git a/include/common.inc.php b/include/common.inc.php
index 88354b5fe..720dc32e7 100644
--- a/include/common.inc.php
+++ b/include/common.inc.php
@@ -105,8 +105,8 @@ include( PHPWG_ROOT_PATH .'include/template.class.php');
// Database connection
$pwg_db_link = pwg_db_connect($conf['db_host'], $conf['db_user'],
- $conf['db_password'], $conf['db_base'])
- or my_error('pwg_db_connect', true);
+ $conf['db_password'], $conf['db_base']);
+pwg_select_db($conf['db_base'], $pwg_db_link);
pwg_db_check_charset();
diff --git a/include/dblayer/functions_mysql.inc.php b/include/dblayer/functions_mysql.inc.php
index 6c8248f92..6ada73a59 100644
--- a/include/dblayer/functions_mysql.inc.php
+++ b/include/dblayer/functions_mysql.inc.php
@@ -32,14 +32,18 @@ define('DB_RANDOM_FUNCTION', 'RAND');
*
*/
-function pwg_db_connect($host, $user, $password, $database)
+function pwg_db_connect($host, $user, $password, $database=null, $die=true)
{
- $link = mysql_connect($host, $user, $password) or my_error('mysql_connect', false);
- mysql_select_db($database, $link) or my_error('mysql_select_db', false);
+ $link = @mysql_connect($host, $user, $password) or my_error('mysql_connect', $die);
return $link;
}
+function pwg_select_db($database, $link, $die=true)
+{
+ return @mysql_select_db($database, $link) or my_error('mysql_select_db', $die);
+}
+
function pwg_db_check_charset()
{
defined('PWG_CHARSET') and defined('DB_CHARSET')
diff --git a/include/dblayer/functions_pdo-sqlite.inc.php b/include/dblayer/functions_pdo-sqlite.inc.php
index dc326c220..aba554341 100644
--- a/include/dblayer/functions_pdo-sqlite.inc.php
+++ b/include/dblayer/functions_pdo-sqlite.inc.php
@@ -33,7 +33,7 @@ define('DB_RANDOM_FUNCTION', 'RANDOM');
*
*/
-function pwg_db_connect($host, $user, $password, $database)
+function pwg_db_connect($host, $user, $password, $database, $die=true)
{
global $conf;
@@ -42,7 +42,7 @@ function pwg_db_connect($host, $user, $password, $database)
try {
$link = new PDO($db_file);
} catch (Exception $e) {
- my_error('sqlite::open', true);
+ my_error('sqlite::open', $die);
}
$link->sqliteCreateFunction('now', 'pwg_now', 0);
@@ -56,6 +56,11 @@ function pwg_db_connect($host, $user, $password, $database)
return $link;
}
+function pwg_select_db($database=null, $link=null, $die=null)
+{
+ return true;
+}
+
function pwg_db_check_charset()
{
return true;
diff --git a/include/dblayer/functions_pgsql.inc.php b/include/dblayer/functions_pgsql.inc.php
index 64e59544e..fe350d090 100644
--- a/include/dblayer/functions_pgsql.inc.php
+++ b/include/dblayer/functions_pgsql.inc.php
@@ -33,7 +33,7 @@ define('DB_RANDOM_FUNCTION', 'RANDOM');
*
*/
-function pwg_db_connect($host, $user, $password, $database)
+function pwg_db_connect($host, $user, $password, $database, $die=true)
{
$connection_string = '';
if (strpos($host,':') !== false)
@@ -49,11 +49,16 @@ function pwg_db_connect($host, $user, $password, $database)
$user,
$password,
$database);
- $link = pg_connect($connection_string) or my_error('pg_connect', false);
+ $link = pg_connect($connection_string) or my_error('pg_connect', $die);
return $link;
}
+function pwg_select_db($database=null, $link=null, $die=null)
+{
+ return true;
+}
+
function pwg_db_check_charset()
{
return true;
diff --git a/include/dblayer/functions_sqlite.inc.php b/include/dblayer/functions_sqlite.inc.php
index 17ef6d576..ce426b9e0 100644
--- a/include/dblayer/functions_sqlite.inc.php
+++ b/include/dblayer/functions_sqlite.inc.php
@@ -33,7 +33,7 @@ define('DB_RANDOM_FUNCTION', 'RANDOM');
*
*/
-function pwg_db_connect($host, $user, $password, $database)
+function pwg_db_connect($host, $user, $password, $database, $die=true)
{
global $conf;
@@ -50,7 +50,7 @@ function pwg_db_connect($host, $user, $password, $database)
try {
$link = new SQLite3($db_file, $sqlite_open_mode);
} catch (Exception $e) {
- my_error('sqlite::open', true);
+ my_error('sqlite::open', $die);
}
$link->createFunction('now', 'pwg_now', 0);
@@ -64,6 +64,11 @@ function pwg_db_connect($host, $user, $password, $database)
return $link;
}
+function pwg_select_db($database=null, $link=null, $die=null)
+{
+ return true;
+}
+
function pwg_db_check_charset()
{
return true;
diff --git a/install.php b/install.php
index 6a2e4038b..8450c379d 100644
--- a/install.php
+++ b/install.php
@@ -227,11 +227,20 @@ if (!isset($step))
//---------------------------------------------------------------- form analyze
if ( isset( $_POST['install'] ))
{
+ ob_start();
if (($pwg_db_link = pwg_db_connect($_POST['dbhost'], $_POST['dbuser'],
- $_POST['dbpasswd'], $_POST['dbname']))!==false)
+ $_POST['dbpasswd'], $_POST['dbname'], false))!==false)
{
-
- array_push( $infos, l10n('Parameters are correct') );
+ if (pwg_select_db($_POST['dbname'], $pwg_db_link, false)!==false)
+ {
+ array_push( $infos, l10n('Parameters are correct') );
+ }
+ else
+ {
+ array_push( $errors,
+ l10n('Connection to server succeed, but it was impossible to connect to database') );
+ }
+ ob_end_clean();
$required_version = constant('REQUIRED_'.strtoupper($dblayer).'_VERSION');
if ( version_compare(pwg_get_db_version(), $required_version, '>=') )
@@ -261,8 +270,8 @@ if ( isset( $_POST['install'] ))
else
{
array_push( $errors, l10n('Can\'t connect to server') );
+ ob_end_clean();
}
-
$webmaster = trim(preg_replace( '/\s{2,}/', ' ', $admin_name ));
if ( empty($webmaster))
array_push( $errors, l10n('enter a login for webmaster') );
diff --git a/upgrade.php b/upgrade.php
index 42c9dc587..761eb4147 100644
--- a/upgrade.php
+++ b/upgrade.php
@@ -52,8 +52,8 @@ define('PREFIX_TABLE', $prefixeTable);
// Database connection
$pwg_db_link = pwg_db_connect($conf['db_host'], $conf['db_user'],
- $conf['db_password'], $conf['db_base'])
- or my_error('pwg_db_connect', true);
+ $conf['db_password'], $conf['db_base']);
+pwg_select_db($conf['db_base'], $pwg_db_link);
pwg_db_check_charset();
diff --git a/upgrade_feed.php b/upgrade_feed.php
index 6695da5d8..52f0cfb9f 100644
--- a/upgrade_feed.php
+++ b/upgrade_feed.php
@@ -56,8 +56,8 @@ define('UPGRADES_PATH', PHPWG_ROOT_PATH.'install/db');
// +-----------------------------------------------------------------------+
$pwg_db_link = pwg_db_connect($conf['db_host'], $conf['db_user'],
- $conf['db_password'], $conf['db_base'])
- or my_error('pwg_db_connect', true);
+ $conf['db_password'], $conf['db_base']);
+pwg_select_db($conf['db_base'], $pwg_db_link);
pwg_db_check_charset();