Qual: Use a factory to create databse instance. This allow to use

different driver so different databases in same page or scripts. This
fix also duplicate class with same names.
This commit is contained in:
eldy 2011-09-28 16:26:49 +02:00
parent a3e7ec7dc0
commit fd4ad1c540
31 changed files with 97 additions and 113 deletions

View File

@ -1400,14 +1400,16 @@ class Adherent extends CommonObject
defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != ''
){
)
{
$mdpass=dol_hash($this->pass);
$htpass=crypt($this->pass,makesalt());
$query = "INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES(\"".$this->prenom." ".$this->nom."\",\"".$this->email."\",\"".$this->login."\",\"$mdpass\",\"$htpass\",FLOOR(32000*RAND()),\"1comite\")";
// $mydb=new Db('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB);
$mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
$result = $mydb->query($query);
$mydb=getDoliDBInstance('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
//$mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
$result = $mydb->query($query);
if ($result)
{
$mydb->close();
@ -1431,11 +1433,14 @@ class Adherent extends CommonObject
defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != ''
){
)
{
$query = "DELETE FROM spip_auteurs WHERE login='".$this->login."'";
$mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
$result = $mydb->query($query);
$mydb=getDoliDBInstance('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
//$mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
$result = $mydb->query($query);
if ($result)
{
$mydb->close();
@ -1462,12 +1467,12 @@ class Adherent extends CommonObject
defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != '')
{
$query = "SELECT login FROM spip_auteurs WHERE login='".$this->login."'";
$mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
if ($mydb->ok) {
$mydb=getDoliDBInstance('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
if ($mydb->ok)
{
$result = $mydb->query($query);
if ($result)
@ -1490,7 +1495,9 @@ class Adherent extends CommonObject
$this->error=$mydb->error();
return -1;
}
} else {
}
else
{
$this->error="Echec de connexion avec les identifiants ".ADHERENT_SPIP_SERVEUR." ".ADHERENT_SPIP_USER." ".ADHERENT_SPIP_PASS." ".ADHERENT_SPIP_DB;
return -1;
}

View File

@ -24,13 +24,11 @@
*/
require("../../main.inc.php");
include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php";
$langs->load("admin");
if (!$user->admin)
accessforbidden();
if (!$user->admin) accessforbidden();
/*

View File

@ -24,12 +24,10 @@
*/
require("../../main.inc.php");
include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php";
$langs->load("admin");
if (!$user->admin)
accessforbidden();
if (!$user->admin) accessforbidden();
if ($_GET["action"] == 'convert')

View File

@ -24,12 +24,10 @@
*/
require("../../main.inc.php");
include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php";
$langs->load("admin");
if (!$user->admin)
accessforbidden();
if (!$user->admin) accessforbidden();

View File

@ -24,13 +24,11 @@
*/
require("../../main.inc.php");
include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php";
$langs->load("admin");
if (!$user->admin)
accessforbidden();
if (!$user->admin) accessforbidden();
/*

View File

@ -23,7 +23,6 @@
*/
require("../../main.inc.php");
include_once(DOL_DOCUMENT_ROOT."/lib/databases/".$conf->db->type.".lib.php");
require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php");
$langs->load("admin");

View File

@ -23,7 +23,6 @@
require("../../main.inc.php");
require_once(DOL_DOCUMENT_ROOT."/core/class/html.formfile.class.php");
include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php";
$langs->load("admin");

View File

@ -24,7 +24,6 @@ require("../../main.inc.php");
require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
require_once(DOL_DOCUMENT_ROOT."/lib/files.lib.php");
require_once(DOL_DOCUMENT_ROOT."/core/class/html.formfile.class.php");
include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php";
$what=$_REQUEST["what"];
$export_type=$_REQUEST["export_type"];

View File

@ -21,7 +21,6 @@
*/
require("../../main.inc.php");
include_once(DOL_DOCUMENT_ROOT."/lib/databases/".$conf->db->type.".lib.php");
include_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php');
$langs->load("admin");

View File

@ -22,7 +22,6 @@
*/
require("../../main.inc.php");
include_once $dolibarr_main_document_root."/lib/databases/".$conf->db->type.".lib.php";
include_once $dolibarr_main_document_root."/lib/files.lib.php";
$langs->load("admin");

View File

@ -31,8 +31,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
$langs->load("admin");
$langs->load("oscommerce");
if (!$user->admin)
accessforbidden();
if (!$user->admin) accessforbidden();
@ -78,10 +77,7 @@ elseif ($_POST["test"])
$conf->oscommerce->db->user=$_POST["oscommerce_dbuser"];
$conf->oscommerce->db->pass=$_POST["oscommerce_dbpass"];
$oscommercedb=new DoliDB($conf->oscommerce->db->type,$conf->oscommerce->db->host,$conf->oscommerce->db->user,$conf->oscommerce->db->pass,$conf->oscommerce->db->name,$conf->oscommerce->db->port);
//print "D ".$db." - ".$db->db."<br>\n";
//print "W ".$oscommercedb." - ".$oscommercedb->db."<br>\n";
$oscommercedb=getDoliDBInstance($conf->oscommerce->db->type,$conf->oscommerce->db->host,$conf->oscommerce->db->user,$conf->oscommerce->db->pass,$conf->oscommerce->db->name,$conf->oscommerce->db->port);
if ($oscommercedb->connected == 1 && $oscommercedb->database_selected == 1)
{
@ -202,12 +198,7 @@ print "</center>";
print "</form>\n";
clearstatcache();
if ($mesg) print "<br>$mesg<br>";
print "<br>";
dol_htmloutput_mesg($mesg);
$db->close();

View File

@ -20,12 +20,12 @@
* \brief Fichier de preparation de l'environnement Dolibarr pour OSCommerce
*/
require_once(DOL_DOCUMENT_ROOT ."/lib/databases/".$conf->db->type.".lib.php");
/*
* Creation objet $dbosc
*/
$dbosc = new DoliDb($conf->db->type,$conf->global->OSC_DB_HOST,$conf->global->OSC_DB_USER,$conf->global->OSC_DB_PASS,$conf->global->OSC_DB_NAME,$conf->global->OSC_DB_PORT);
$dbosc=getDoliDBInstance($conf->db->type,$conf->global->OSC_DB_HOST,$conf->global->OSC_DB_USER,$conf->global->OSC_DB_PASS,$conf->global->OSC_DB_NAME,$conf->global->OSC_DB_PORT);
//$dbosc = new DoliDb($conf->db->type,$conf->global->OSC_DB_HOST,$conf->global->OSC_DB_USER,$conf->global->OSC_DB_PASS,$conf->global->OSC_DB_NAME,$conf->global->OSC_DB_PORT);
if (! $dbosc->connected)
{
dol_syslog($dbosc,"host=".$conf->global->OSC_DB_HOST.", user=".$conf->global->OSC_DB_USER.", databasename=".$conf->global->OSC_DB_NAME.", ".$db->error,LOG_ERR);

View File

@ -280,7 +280,6 @@ else
else
{
require_once($dolibarr_main_document_root."/lib/admin.lib.php");
require_once($dolibarr_main_document_root."/lib/databases/".$dolibarr_main_db_type.".lib.php");
// $conf is already instancied inside inc.php
$conf->db->type = $dolibarr_main_db_type;
@ -289,7 +288,7 @@ else
$conf->db->name = $dolibarr_main_db_name;
$conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->connected == 1 && $db->database_selected == 1)
{
$ok=1;

View File

@ -116,7 +116,7 @@ if (! $main_data_dir) { $main_data_dir="$main_dir/documents"; }
// Test database connexion
if (! $error)
{
$result=@include_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php");
$result=@include_once($main_dir."/lib/databases/".$_POST["db_type"].".class.php");
if ($result)
{
// If we ask database or user creation we need to connect as root
@ -157,7 +157,9 @@ if (! $error)
}
}
//print $_POST["db_type"].",".$_POST["db_host"].",$userroot,$passroot,$databasefortest,".$_POST["db_port"];
$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest,$_POST["db_port"]);
$db=getDoliDBInstance($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest,$_POST["db_port"]);
//$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest,$_POST["db_port"]);
dol_syslog("databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected, LOG_DEBUG);
//print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected;
@ -181,7 +183,8 @@ if (! $error)
// If we need simple access
if (! $error && (empty($_POST["db_create_database"]) && empty($_POST["db_create_user"])))
{
$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"],$_POST["db_port"]);
$db=getDoliDBInstance($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"],$_POST["db_port"]);
//$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"],$_POST["db_port"]);
if ($db->error)
{
print '<div class="error">'.$db->error.'</div>';
@ -193,7 +196,7 @@ if (! $error)
}
else
{
print "<br>\nFailed to include_once(\"".$main_dir."/lib/databases/".$_POST["db_type"].".lib.php\")<br>\n";
print "<br>\nFailed to include_once(\"".$main_dir."/lib/databases/".$_POST["db_type"].".class.php\")<br>\n";
print '<div class="error">'.$langs->trans("ErrorWrongValueForParameter",$langs->transnoentities("WebPagesDirectory")).'</div>';
print $langs->trans("ErrorGoBackAndCorrectParameters");
$error++;
@ -275,12 +278,9 @@ if (! $error && $db->connected && $action == "set")
}
}
// Load database driver
if (! $error)
{
dolibarr_install_syslog("etape1: Directory '".$main_dir."' exists");
require_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php");
}
@ -433,7 +433,8 @@ if (! $error && $db->connected && $action == "set")
// Creation handler de base, verification du support et connexion
$db = new DoliDb($conf->db->type,$conf->db->host,$userroot,$passroot,$databasefortest,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,$databasefortest,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$userroot,$passroot,$databasefortest,$conf->db->port);
if ($db->error)
{
print '<div class="error">'.$db->error.'</div>';
@ -507,7 +508,8 @@ if (! $error && $db->connected && $action == "set")
if (! $error && (isset($_POST["db_create_database"]) && $_POST["db_create_database"] == "on"))
{
dolibarr_install_syslog("etape1: Create database : ".$dolibarr_main_db_name, LOG_DEBUG);
$db = new DoliDb($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port);
if ($db->connected)
{
@ -570,7 +572,8 @@ if (! $error && $db->connected && $action == "set")
dolibarr_install_syslog("etape1: connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name, LOG_DEBUG);
//print "connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->connected == 1)
{

View File

@ -23,7 +23,6 @@
*/
include("./inc.php");
require_once($dolibarr_main_document_root."/lib/databases/".$dolibarr_main_db_type.".lib.php");
require_once($dolibarr_main_document_root."/core/class/conf.class.php");
require_once($dolibarr_main_document_root."/lib/admin.lib.php");
@ -80,7 +79,8 @@ if ($action == "set")
print '<table cellspacing="0" cellpadding="4" border="0" width="100%">';
$error=0;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->connected == 1)
{
print "<tr><td>";

View File

@ -26,7 +26,6 @@
include_once("./inc.php");
require_once($dolibarr_main_document_root."/lib/databases/".$dolibarr_main_db_type.".lib.php");
require_once($dolibarr_main_document_root."/core/class/conf.class.php");
require_once($dolibarr_main_document_root."/lib/admin.lib.php");
@ -70,7 +69,8 @@ print '<br>'.$langs->trans("LastStepDesc").'<br><br>';
print '<table cellspacing="0" cellpadding="2" width="100%">';
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->ok == 1)
{
print '<tr><td>'.$langs->trans("DolibarrAdminLogin").' :</td><td>';

View File

@ -27,7 +27,6 @@
include_once("./inc.php");
if (file_exists($conffile)) include_once($conffile);
require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
require_once($dolibarr_main_document_root . "/lib/admin.lib.php");
@ -137,7 +136,8 @@ if ($action == "set" || preg_match('/upgrade/i',$action))
$conf->db->dolibarr_main_db_encryption = isset($dolibarr_main_db_encryption)?$dolibarr_main_db_encryption:'';
$conf->db->dolibarr_main_db_cryptkey = isset($dolibarr_main_db_cryptkey)?$dolibarr_main_db_cryptkey:'';
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$ok = 0;

View File

@ -270,7 +270,7 @@ if (! empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on') { // Enabled if t
{
while (($file = readdir($handle))!==false)
{
if (is_readable($dir."/".$file) && preg_match('/^(.*)\.lib\.php/i',$file,$reg))
if (is_readable($dir."/".$file) && preg_match('/^(.*)\.class\.php/i',$file,$reg))
{
$type=$reg[1];

View File

@ -111,12 +111,8 @@ if (! defined('DONOTLOADCONF') && file_exists($conffile))
{
if (! empty($dolibarr_main_document_root) && ! empty($dolibarr_main_db_type))
{
$result=include_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
if ($result)
{
// OK
}
else
$result=include_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".class.php");
if (! $result)
{
$includeconferror='ErrorBadValueForDolibarrMainDBType';
}

View File

@ -24,7 +24,6 @@
include_once("./inc.php");
if (file_exists($conffile)) include_once($conffile);
require_once($dolibarr_main_document_root."/lib/databases/".$dolibarr_main_db_type.".lib.php");
require_once($dolibarr_main_document_root."/lib/admin.lib.php");
@ -95,7 +94,8 @@ $conf->db->name = $dolibarr_main_db_name;
$conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->connected == 1)
{
print '<tr><td nowrap="nowrap">';

View File

@ -28,7 +28,6 @@ if (! file_exists($conffile))
print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").';
}
require_once($conffile); if (! isset($dolibarr_main_db_type)) $dolibarr_main_db_type='mysql'; // For backward compatibility
require_once($dolibarr_main_document_root."/lib/databases/".$dolibarr_main_db_type.".lib.php");
require_once($dolibarr_main_document_root."/lib/admin.lib.php");
$grant_query='';
@ -112,7 +111,8 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
if (empty($dolibarr_main_db_cryptkey)) $dolibarr_main_db_cryptkey='';
$conf->db->dolibarr_main_db_cryptkey = $dolibarr_main_db_cryptkey;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->connected == 1)
{
print '<tr><td nowrap="nowrap">';

View File

@ -29,7 +29,6 @@ if (! file_exists($conffile))
print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").';
}
require_once($conffile); if (! isset($dolibarr_main_db_type)) $dolibarr_main_db_type='mysql'; // For backward compatibility
require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
require_once($dolibarr_main_document_root . '/compta/facture/class/facture.class.php');
require_once($dolibarr_main_document_root . '/comm/propal/class/propal.class.php');
require_once($dolibarr_main_document_root . '/contrat/class/contrat.class.php');
@ -106,7 +105,8 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
$conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->connected != 1)
{
print '<tr><td colspan="4">'.$langs->trans("ErrorFailedToConnectToDatabase",$conf->db->name).'</td><td align="right">'.$langs->trans('Error').'</td></tr>';

View File

@ -19,17 +19,17 @@
*/
/**
* \file htdocs/lib/databases/mssql.lib.php
* \file htdocs/lib/databases/mssql.class.php
* \brief Fichier de la classe permettant de gerer une base mssql
*/
/**
* \class DoliDb
* \class DoliDbMssql
* \brief Classe de gestion de la database de dolibarr
* \remarks Works with PHP5 Only
*/
class DoliDb
class DoliDbMssql
{
//! Database handler
var $db;
@ -80,7 +80,7 @@ class DoliDb
* @param int $port Port of database server
* @return int 1 if OK, 0 if not
*/
function DoliDb($type='mssql', $host, $user, $pass, $name='', $port=0)
function DoliDbMssql($type, $host, $user, $pass, $name='', $port=0)
{
global $conf,$langs;

View File

@ -20,16 +20,16 @@
*/
/**
* \file htdocs/lib/databases/mysql.lib.php
* \file htdocs/lib/databases/mysql.class.php
* \brief Class file to manage Dolibarr database access for a Mysql database
*/
/**
* \class DoliDb
* \class DoliDbMysql
* \brief Class to manage Dolibarr database access for a Mysql database
*/
class DoliDb
class DoliDbMysql
{
//! Database handler
var $db;
@ -80,7 +80,7 @@ class DoliDb
* @param int $port Port of database server
* @return int 1 if OK, 0 if not
*/
function DoliDb($type='mysql', $host, $user, $pass, $name='', $port=0)
function DoliDb($type, $host, $user, $pass, $name='', $port=0)
{
global $conf,$langs;

View File

@ -20,16 +20,16 @@
*/
/**
* \file htdocs/lib/databases/mysqli.lib.php
* \file htdocs/lib/databases/mysqli.class.php
* \brief Class file to manage Dolibarr database access for a Mysql database
*/
/**
* \class DoliDb
* \class DoliDBMysqli
* \brief Class to manage Dolibarr database access for a Mysql database
*/
class DoliDb
class DoliDBMysqli
{
//! Database handler
var $db;
@ -80,7 +80,7 @@ class DoliDb
* @param int $port Port of database server
* @return int 1 if OK, 0 if not
*/
function DoliDb($type='mysqli', $host, $user, $pass, $name='', $port=0)
function DoliDBMysqli($type, $host, $user, $pass, $name='', $port=0)
{
global $conf,$langs;

View File

@ -21,16 +21,16 @@
*/
/**
* \file htdocs/lib/databases/pgsql.lib.php
* \file htdocs/lib/databases/pgsql.class.php
* \brief Fichier de la classe permettant de gerer une base pgsql
*/
/**
* \class DoliDb
* \class DoliDbPgsql
* \brief Class to drive a Postgresql database for Dolibarr
*/
class DoliDb
class DoliDbPgsql
{
var $db; // Database handler
var $type='pgsql'; // Name of manager
@ -70,7 +70,7 @@ class DoliDb
* @param int $port Port of database server
* @return int 1 if OK, 0 if not
*/
function DoliDb($type='pgsql', $host, $user, $pass, $name='', $port=0)
function DoliDbPgsql($type, $host, $user, $pass, $name='', $port=0)
{
global $conf,$langs;

View File

@ -31,6 +31,27 @@
*/
/**
* Return a DoliDB instance (database handler).
*
* @param string $type Type of database (mysql, pgsql...)
* @param string $host Address of database server
* @param string $user Nom de l'utilisateur autorise
* @param string $pass Mot de passe
* @param string $name Nom de la database
* @param int $port Port of database server
* @return DoliDB A DoliDB instance
*/
function getDoliDBInstance($type, $host, $user, $pass, $name, $port)
{
require_once(DOL_DOCUMENT_ROOT ."/lib/databases/".$type.".class.php");
$class='DoliDB'.ucfirst($type);
$dolidb=new $class($type, $host, $user, $pass, $name, $port);
return $dolidb;
}
/**
* This function output memory used by PHP and exit everything. Used for debugging purpose.
*

View File

@ -83,7 +83,6 @@ if (! empty($dolibarr_main_document_root_alt))
if (! defined('NOREQUIREUSER')) require_once(DOL_DOCUMENT_ROOT ."/user/class/user.class.php"); // Need 500ko memory
if (! defined('NOREQUIRETRAN')) require_once(DOL_DOCUMENT_ROOT ."/core/class/translate.class.php");
if (! defined('NOREQUIRESOC')) require_once(DOL_DOCUMENT_ROOT ."/societe/class/societe.class.php");
if (! defined('NOREQUIREDB')) require_once(DOL_DOCUMENT_ROOT ."/lib/databases/".$conf->db->type.".lib.php");
/*
* Creation objet $langs (must be before all other code)
@ -98,7 +97,8 @@ if (! defined('NOREQUIRETRAN'))
*/
if (! defined('NOREQUIREDB'))
{
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
//$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->error)
{

View File

@ -105,12 +105,8 @@ if (! defined('DONOTLOADCONF') && file_exists($conffile))
{
if (! empty($dolibarr_main_document_root) && ! empty($dolibarr_main_db_type))
{
$result=include_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
if ($result)
{
// OK
}
else
$result=include_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".class.php");
if (! $result)
{
$includeconferror='ErrorBadValueForDolibarrMainDBType';
}

View File

@ -34,10 +34,6 @@
<directory suffix=".php">../../htdocs/includes/odtphp/</directory>
<directory suffix=".php">../../htdocs/includes/phpexcel/</directory>
<directory suffix=".php">../../htdocs/includes/tcpdf/</directory>
<file>../../htdocs/lib/databases/mssql.lib.php</file>
<file>../../htdocs/lib/databases/pgsql.lib.php</file>
<file>../../htdocs/lib/databases/mysql.lib.php</file>
<!-- <file>../../htdocs/lib/databases/mysqli.lib.php</file> -->
</blacklist>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".class.php">../../htdocs/</directory>
@ -71,10 +67,6 @@
<directory suffix=".php">../../htdocs/includes/odtphp/</directory>
<directory suffix=".php">../../htdocs/includes/phpexcel/</directory>
<directory suffix=".php">../../htdocs/includes/tcpdf/</directory>
<file>../../htdocs/lib/databases/mssql.lib.php</file>
<file>../../htdocs/lib/databases/pgsql.lib.php</file>
<file>../../htdocs/lib/databases/mysql.lib.php</file>
<!-- <file>../../htdocs/lib/databases/mysqli.lib.php</file> -->
</exclude>
</whitelist>
</filter>

View File

@ -27,10 +27,6 @@
<directory suffix=".php">../../htdocs/includes/odtphp/</directory>
<directory suffix=".php">../../htdocs/includes/phpexcel/</directory>
<directory suffix=".php">../../htdocs/includes/tcpdf/</directory>
<file>../../htdocs/lib/databases/mssql.lib.php</file>
<file>../../htdocs/lib/databases/pgsql.lib.php</file>
<file>../../htdocs/lib/databases/mysql.lib.php</file>
<!-- <file>../../htdocs/lib/databases/mysqli.lib.php</file> -->
</blacklist>
<whitelist>
<directory suffix=".class.php">../../htdocs/</directory>
@ -67,10 +63,6 @@
<directory suffix=".php">../../htdocs/includes/odtphp/</directory>
<directory suffix=".php">../../htdocs/includes/phpexcel/</directory>
<directory suffix=".php">../../htdocs/includes/tcpdf/</directory>
<file>../../htdocs/lib/databases/mssql.lib.php</file>
<file>../../htdocs/lib/databases/pgsql.lib.php</file>
<file>../../htdocs/lib/databases/mysql.lib.php</file>
<!-- <file>../../htdocs/lib/databases/mysqli.lib.php</file> -->
</exclude>
</whitelist>
</filter>