Merge pull request #1474 from GPCsolutions/dolibdb
Dolidb factorization
This commit is contained in:
commit
6acaf20c42
@ -35,9 +35,9 @@ abstract class DoliDB implements Database
|
|||||||
//! Database label
|
//! Database label
|
||||||
static $label;
|
static $label;
|
||||||
//! Charset used to force charset when creating database
|
//! Charset used to force charset when creating database
|
||||||
public $forcecharset;
|
public $forcecharset='utf8';
|
||||||
//! Collate used to force collate when creating database
|
//! Collate used to force collate when creating database
|
||||||
public $forcecollate;
|
public $forcecollate='utf8_general_ci';
|
||||||
//! Min database version
|
//! Min database version
|
||||||
static $versionmin;
|
static $versionmin;
|
||||||
//! Resultset of last query
|
//! Resultset of last query
|
||||||
@ -64,7 +64,96 @@ abstract class DoliDB implements Database
|
|||||||
public $ok;
|
public $ok;
|
||||||
public $error;
|
public $error;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Format a SQL IF
|
||||||
|
*
|
||||||
|
* @param string $test Test string (example: 'cd.statut=0', 'field IS NULL')
|
||||||
|
* @param string $resok resultat si test egal
|
||||||
|
* @param string $resko resultat si test non egal
|
||||||
|
* @return string SQL string
|
||||||
|
*/
|
||||||
|
function ifsql($test,$resok,$resko)
|
||||||
|
{
|
||||||
|
return 'IF('.$test.','.$resok.','.$resko.')';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field.
|
||||||
|
* Function to use to build INSERT, UPDATE or WHERE predica
|
||||||
|
*
|
||||||
|
* @param string $param Date TMS to convert
|
||||||
|
* @return string Date in a string YYYYMMDDHHMMSS
|
||||||
|
*/
|
||||||
|
function idate($param)
|
||||||
|
{
|
||||||
|
return dol_print_date($param,"%Y%m%d%H%M%S");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return last error code
|
||||||
|
*
|
||||||
|
* @return string lasterrno
|
||||||
|
*/
|
||||||
|
function lasterrno()
|
||||||
|
{
|
||||||
|
return $this->lasterrno;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start transaction
|
||||||
|
*
|
||||||
|
* @return int 1 if transaction successfuly opened or already opened, 0 if error
|
||||||
|
*/
|
||||||
|
function begin()
|
||||||
|
{
|
||||||
|
if (! $this->transaction_opened)
|
||||||
|
{
|
||||||
|
$ret=$this->query("BEGIN");
|
||||||
|
if ($ret)
|
||||||
|
{
|
||||||
|
$this->transaction_opened++;
|
||||||
|
dol_syslog("BEGIN Transaction",LOG_DEBUG);
|
||||||
|
dol_syslog('',0,1);
|
||||||
|
}
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->transaction_opened++;
|
||||||
|
dol_syslog('',0,1);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return version of database server into an array
|
||||||
|
*
|
||||||
|
* @return array Version array
|
||||||
|
*/
|
||||||
|
function getVersionArray()
|
||||||
|
{
|
||||||
|
return explode('.',$this->getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return label of manager
|
||||||
|
*
|
||||||
|
* @return string Label
|
||||||
|
*/
|
||||||
|
function getLabel()
|
||||||
|
{
|
||||||
|
return $this->label;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return last request executed with query()
|
||||||
|
*
|
||||||
|
* @return string Last query
|
||||||
|
*/
|
||||||
|
function lastquery()
|
||||||
|
{
|
||||||
|
return $this->lastquery;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define sort criteria of request
|
* Define sort criteria of request
|
||||||
@ -94,5 +183,42 @@ abstract class DoliDB implements Database
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return last error label
|
||||||
|
*
|
||||||
|
* @return string lasterror
|
||||||
|
*/
|
||||||
|
function lasterror()
|
||||||
|
{
|
||||||
|
return $this->lasterror;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true)
|
||||||
|
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
||||||
|
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
||||||
|
*
|
||||||
|
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
||||||
|
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
||||||
|
* @return date Date TMS
|
||||||
|
*/
|
||||||
|
function jdate($string, $gm=false)
|
||||||
|
{
|
||||||
|
$string=preg_replace('/([^0-9])/i','',$string);
|
||||||
|
$tmp=$string.'000000';
|
||||||
|
$date=dol_mktime(substr($tmp,8,2),substr($tmp,10,2),substr($tmp,12,2),substr($tmp,4,2),substr($tmp,6,2),substr($tmp,0,4),$gm);
|
||||||
|
return $date;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return last query in error
|
||||||
|
*
|
||||||
|
* @return string lastqueryerror
|
||||||
|
*/
|
||||||
|
function lastqueryerror()
|
||||||
|
{
|
||||||
|
return $this->lastqueryerror;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,8 +30,6 @@ require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php';
|
|||||||
*/
|
*/
|
||||||
class DoliDBMssql extends DoliDB
|
class DoliDBMssql extends DoliDB
|
||||||
{
|
{
|
||||||
//! Database handler
|
|
||||||
var $db;
|
|
||||||
//! Database type
|
//! Database type
|
||||||
public $type='mssql';
|
public $type='mssql';
|
||||||
//! Database label
|
//! Database label
|
||||||
@ -42,30 +40,8 @@ class DoliDBMssql extends DoliDB
|
|||||||
var $forcecollate='latin1_swedish_ci'; // Can't be static as it may be forced with a dynamic value
|
var $forcecollate='latin1_swedish_ci'; // Can't be static as it may be forced with a dynamic value
|
||||||
//! Version min database
|
//! Version min database
|
||||||
static $versionmin=array(2000);
|
static $versionmin=array(2000);
|
||||||
//! Resultset of last request
|
//! Resultset of last query
|
||||||
private $_results;
|
private $_results;
|
||||||
//! 1 si connecte, 0 sinon
|
|
||||||
var $connected;
|
|
||||||
//! 1 si base selectionne, 0 sinon
|
|
||||||
var $database_selected;
|
|
||||||
//! Nom base selectionnee
|
|
||||||
var $database_name;
|
|
||||||
//! Nom user base
|
|
||||||
var $database_user;
|
|
||||||
//! >=1 if a transaction is opened, 0 otherwise
|
|
||||||
var $transaction_opened;
|
|
||||||
//! Derniere requete executee
|
|
||||||
var $lastquery;
|
|
||||||
//! Derniere requete executee avec echec
|
|
||||||
var $lastqueryerror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterrno;
|
|
||||||
|
|
||||||
var $ok;
|
|
||||||
var $error;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
@ -197,16 +173,6 @@ class DoliDBMssql extends DoliDB
|
|||||||
return $this->db;
|
return $this->db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return label of manager
|
|
||||||
*
|
|
||||||
* @return string Label
|
|
||||||
*/
|
|
||||||
function getLabel()
|
|
||||||
{
|
|
||||||
return $this->label;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database server
|
* Return version of database server
|
||||||
*
|
*
|
||||||
@ -219,17 +185,6 @@ class DoliDBMssql extends DoliDB
|
|||||||
return $version['computed'];
|
return $version['computed'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return version of database server into an array
|
|
||||||
*
|
|
||||||
* @return array Version array
|
|
||||||
*/
|
|
||||||
function getVersionArray()
|
|
||||||
{
|
|
||||||
return explode('.',$this->getVersion());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database client driver
|
* Return version of database client driver
|
||||||
*
|
*
|
||||||
@ -553,77 +508,6 @@ class DoliDBMssql extends DoliDB
|
|||||||
return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
|
return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true)
|
|
||||||
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
|
||||||
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
|
||||||
*
|
|
||||||
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
|
||||||
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
|
||||||
* @return date Date TMS
|
|
||||||
*/
|
|
||||||
function jdate($string, $gm=false)
|
|
||||||
{
|
|
||||||
$string=preg_replace('/([^0-9])/i','',$string);
|
|
||||||
$tmp=$string.'000000';
|
|
||||||
$date=dol_mktime(substr($tmp,8,2),substr($tmp,10,2),substr($tmp,12,2),substr($tmp,4,2),substr($tmp,6,2),substr($tmp,0,4),$gm);
|
|
||||||
return $date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format a SQL IF
|
|
||||||
*
|
|
||||||
* @param string $test Test string (example: 'cd.statut=0', 'field IS NULL')
|
|
||||||
* @param string $resok resultat si test egal
|
|
||||||
* @param string $resko resultat si test non egal
|
|
||||||
* @return string SQL string
|
|
||||||
*/
|
|
||||||
function ifsql($test,$resok,$resko)
|
|
||||||
{
|
|
||||||
return 'IF('.$test.','.$resok.','.$resko.')';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last request executed with query()
|
|
||||||
*
|
|
||||||
* @return string Last query
|
|
||||||
*/
|
|
||||||
function lastquery()
|
|
||||||
{
|
|
||||||
return $this->lastquery;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last query in error
|
|
||||||
*
|
|
||||||
* @return string lastqueryerror
|
|
||||||
*/
|
|
||||||
function lastqueryerror()
|
|
||||||
{
|
|
||||||
return $this->lastqueryerror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last error label
|
|
||||||
*
|
|
||||||
* @return string lasterror
|
|
||||||
*/
|
|
||||||
function lasterror()
|
|
||||||
{
|
|
||||||
return $this->lasterror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last error code
|
|
||||||
*
|
|
||||||
* @return string lasterrno
|
|
||||||
*/
|
|
||||||
function lasterrno()
|
|
||||||
{
|
|
||||||
return $this->lasterrno;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return generic error code of last operation.
|
* Return generic error code of last operation.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -31,42 +31,14 @@ require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php';
|
|||||||
*/
|
*/
|
||||||
class DoliDBMysql extends DoliDB
|
class DoliDBMysql extends DoliDB
|
||||||
{
|
{
|
||||||
//! Database handler
|
|
||||||
var $db;
|
|
||||||
//! Database type
|
//! Database type
|
||||||
public $type='mysql';
|
public $type='mysql';
|
||||||
//! Database label
|
//! Database label
|
||||||
static $label='MySQL';
|
static $label='MySQL';
|
||||||
//! Charset used to force charset when creating database
|
|
||||||
var $forcecharset='utf8'; // latin1, utf8. Can't be static as it may be forced with a dynamic value
|
|
||||||
//! Collate used to force collate when creating database
|
|
||||||
var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci. Can't be static as it may be forced with a dynamic value
|
|
||||||
//! Version min database
|
//! Version min database
|
||||||
static $versionmin=array(4,1,0);
|
static $versionmin=array(4,1,0);
|
||||||
//! Resultset of last request
|
//! Resultset of last query
|
||||||
private $_results;
|
private $_results;
|
||||||
//! 1 if connected, 0 else
|
|
||||||
var $connected;
|
|
||||||
//! 1 if database selected, 0 else
|
|
||||||
var $database_selected;
|
|
||||||
//! Database name selected
|
|
||||||
var $database_name;
|
|
||||||
//! Nom user base
|
|
||||||
var $database_user;
|
|
||||||
//! >=1 if a transaction is opened, 0 otherwise
|
|
||||||
var $transaction_opened;
|
|
||||||
//! Last executed request
|
|
||||||
var $lastquery;
|
|
||||||
//! Last failed executed request
|
|
||||||
var $lastqueryerror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterrno;
|
|
||||||
|
|
||||||
var $ok;
|
|
||||||
var $error;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
@ -229,16 +201,6 @@ class DoliDBMysql extends DoliDB
|
|||||||
return $this->db;
|
return $this->db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return label of manager
|
|
||||||
*
|
|
||||||
* @return string Label
|
|
||||||
*/
|
|
||||||
function getLabel()
|
|
||||||
{
|
|
||||||
return $this->label;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database server
|
* Return version of database server
|
||||||
*
|
*
|
||||||
@ -249,16 +211,6 @@ class DoliDBMysql extends DoliDB
|
|||||||
return mysql_get_server_info($this->db);
|
return mysql_get_server_info($this->db);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return version of database server into an array
|
|
||||||
*
|
|
||||||
* @return array Version array
|
|
||||||
*/
|
|
||||||
function getVersionArray()
|
|
||||||
{
|
|
||||||
return explode('.',$this->getVersion());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database client driver
|
* Return version of database client driver
|
||||||
*
|
*
|
||||||
@ -287,33 +239,6 @@ class DoliDBMysql extends DoliDB
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start transaction
|
|
||||||
*
|
|
||||||
* @return int 1 if transaction successfuly opened or already opened, 0 if error
|
|
||||||
*/
|
|
||||||
function begin()
|
|
||||||
{
|
|
||||||
if (! $this->transaction_opened)
|
|
||||||
{
|
|
||||||
$ret=$this->query("BEGIN");
|
|
||||||
if ($ret)
|
|
||||||
{
|
|
||||||
$this->transaction_opened++;
|
|
||||||
dol_syslog("BEGIN Transaction",LOG_DEBUG);
|
|
||||||
dol_syslog('',0,1);
|
|
||||||
}
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->transaction_opened++;
|
|
||||||
dol_syslog('',0,1);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate a database transaction
|
* Validate a database transaction
|
||||||
*
|
*
|
||||||
@ -518,90 +443,6 @@ class DoliDBMysql extends DoliDB
|
|||||||
return addslashes($stringtoencode);
|
return addslashes($stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field.
|
|
||||||
* Function to use to build INSERT, UPDATE or WHERE predica
|
|
||||||
*
|
|
||||||
* @param string $param Date TMS to convert
|
|
||||||
* @return string Date in a string YYYYMMDDHHMMSS
|
|
||||||
*/
|
|
||||||
function idate($param)
|
|
||||||
{
|
|
||||||
return dol_print_date($param,"%Y%m%d%H%M%S");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true)
|
|
||||||
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
|
||||||
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
|
||||||
*
|
|
||||||
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
|
||||||
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
|
||||||
* @return date Date TMS
|
|
||||||
*/
|
|
||||||
function jdate($string, $gm=false)
|
|
||||||
{
|
|
||||||
$string=preg_replace('/([^0-9])/i','',$string);
|
|
||||||
$tmp=$string.'000000';
|
|
||||||
$date=dol_mktime(substr($tmp,8,2),substr($tmp,10,2),substr($tmp,12,2),substr($tmp,4,2),substr($tmp,6,2),substr($tmp,0,4),$gm);
|
|
||||||
return $date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format a SQL IF
|
|
||||||
*
|
|
||||||
* @param string $test Test string (example: 'cd.statut=0', 'field IS NULL')
|
|
||||||
* @param string $resok resultat si test egal
|
|
||||||
* @param string $resko resultat si test non egal
|
|
||||||
* @return string SQL string
|
|
||||||
*/
|
|
||||||
function ifsql($test,$resok,$resko)
|
|
||||||
{
|
|
||||||
return 'IF('.$test.','.$resok.','.$resko.')';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last request executed with query()
|
|
||||||
*
|
|
||||||
* @return string Last query
|
|
||||||
*/
|
|
||||||
function lastquery()
|
|
||||||
{
|
|
||||||
return $this->lastquery;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last query in error
|
|
||||||
*
|
|
||||||
* @return string lastqueryerror
|
|
||||||
*/
|
|
||||||
function lastqueryerror()
|
|
||||||
{
|
|
||||||
return $this->lastqueryerror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last error label
|
|
||||||
*
|
|
||||||
* @return string lasterror
|
|
||||||
*/
|
|
||||||
function lasterror()
|
|
||||||
{
|
|
||||||
return $this->lasterror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last error code
|
|
||||||
*
|
|
||||||
* @return string lasterrno
|
|
||||||
*/
|
|
||||||
function lasterrno()
|
|
||||||
{
|
|
||||||
return $this->lasterrno;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return generic error code of last operation.
|
* Return generic error code of last operation.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -31,42 +31,14 @@ require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php';
|
|||||||
*/
|
*/
|
||||||
class DoliDBMysqli extends DoliDB
|
class DoliDBMysqli extends DoliDB
|
||||||
{
|
{
|
||||||
//! Database handler
|
|
||||||
var $db;
|
|
||||||
//! Database type
|
//! Database type
|
||||||
public $type='mysqli';
|
public $type='mysqli';
|
||||||
//! Database label
|
//! Database label
|
||||||
static $label='MySQL';
|
static $label='MySQL';
|
||||||
//! Charset used to force charset when creating database
|
|
||||||
var $forcecharset='utf8'; // latin1, utf8. Can't be static as it may be forced with a dynamic value
|
|
||||||
//! Collate used to force collate when creating database
|
|
||||||
var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci. Can't be static as it may be forced with a dynamic value
|
|
||||||
//! Version min database
|
//! Version min database
|
||||||
static $versionmin=array(4,1,0);
|
static $versionmin=array(4,1,0);
|
||||||
//! Resultset of last request
|
//! Resultset of last query
|
||||||
private $_results;
|
private $_results;
|
||||||
//! 1 if connected, 0 else
|
|
||||||
var $connected;
|
|
||||||
//! 1 if database selected, 0 else
|
|
||||||
var $database_selected;
|
|
||||||
//! Database name selected
|
|
||||||
var $database_name;
|
|
||||||
//! Nom user base
|
|
||||||
var $database_user;
|
|
||||||
//! >=1 if a transaction is opened, 0 otherwise
|
|
||||||
var $transaction_opened;
|
|
||||||
//! Last executed request
|
|
||||||
var $lastquery;
|
|
||||||
//! Last failed executed request
|
|
||||||
var $lastqueryerror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterrno;
|
|
||||||
|
|
||||||
var $ok;
|
|
||||||
var $error;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
@ -233,16 +205,6 @@ class DoliDBMysqli extends DoliDB
|
|||||||
return $this->db;
|
return $this->db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return label of manager
|
|
||||||
*
|
|
||||||
* @return string Label
|
|
||||||
*/
|
|
||||||
function getLabel()
|
|
||||||
{
|
|
||||||
return $this->label;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database server
|
* Return version of database server
|
||||||
*
|
*
|
||||||
@ -253,16 +215,6 @@ class DoliDBMysqli extends DoliDB
|
|||||||
return mysqli_get_server_info($this->db);
|
return mysqli_get_server_info($this->db);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return version of database server into an array
|
|
||||||
*
|
|
||||||
* @return array Version array
|
|
||||||
*/
|
|
||||||
function getVersionArray()
|
|
||||||
{
|
|
||||||
return explode('.',$this->getVersion());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database client driver
|
* Return version of database client driver
|
||||||
*
|
*
|
||||||
@ -291,33 +243,6 @@ class DoliDBMysqli extends DoliDB
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start transaction
|
|
||||||
*
|
|
||||||
* @return int 1 if transaction successfuly opened or already opened, 0 if error
|
|
||||||
*/
|
|
||||||
function begin()
|
|
||||||
{
|
|
||||||
if (! $this->transaction_opened)
|
|
||||||
{
|
|
||||||
$ret=$this->query("BEGIN");
|
|
||||||
if ($ret)
|
|
||||||
{
|
|
||||||
$this->transaction_opened++;
|
|
||||||
dol_syslog("BEGIN Transaction",LOG_DEBUG);
|
|
||||||
dol_syslog('',0,1);
|
|
||||||
}
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->transaction_opened++;
|
|
||||||
dol_syslog('',0,1);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate a database transaction
|
* Validate a database transaction
|
||||||
*
|
*
|
||||||
@ -529,89 +454,6 @@ class DoliDBMysqli extends DoliDB
|
|||||||
return addslashes($stringtoencode);
|
return addslashes($stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field.
|
|
||||||
* Function to use to build INSERT, UPDATE or WHERE predica
|
|
||||||
*
|
|
||||||
* @param string $param Date TMS to convert
|
|
||||||
* @return string Date in a string YYYYMMDDHHMMSS
|
|
||||||
*/
|
|
||||||
function idate($param)
|
|
||||||
{
|
|
||||||
return dol_print_date($param,"%Y%m%d%H%M%S");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true)
|
|
||||||
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
|
||||||
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
|
||||||
*
|
|
||||||
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
|
||||||
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
|
||||||
* @return date Date TMS
|
|
||||||
*/
|
|
||||||
function jdate($string, $gm=false)
|
|
||||||
{
|
|
||||||
$string=preg_replace('/([^0-9])/i','',$string);
|
|
||||||
$tmp=$string.'000000';
|
|
||||||
$date=dol_mktime(substr($tmp,8,2),substr($tmp,10,2),substr($tmp,12,2),substr($tmp,4,2),substr($tmp,6,2),substr($tmp,0,4),$gm);
|
|
||||||
return $date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format a SQL IF
|
|
||||||
*
|
|
||||||
* @param string $test Test string (example: 'cd.statut=0', 'field IS NULL')
|
|
||||||
* @param string $resok resultat si test egal
|
|
||||||
* @param string $resko resultat si test non egal
|
|
||||||
* @return string SQL string
|
|
||||||
*/
|
|
||||||
function ifsql($test,$resok,$resko)
|
|
||||||
{
|
|
||||||
return 'IF('.$test.','.$resok.','.$resko.')';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last request executed with query()
|
|
||||||
*
|
|
||||||
* @return string Last query
|
|
||||||
*/
|
|
||||||
function lastquery()
|
|
||||||
{
|
|
||||||
return $this->lastquery;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie la derniere requete en erreur
|
|
||||||
*
|
|
||||||
* @return string lastqueryerror
|
|
||||||
*/
|
|
||||||
function lastqueryerror()
|
|
||||||
{
|
|
||||||
return $this->lastqueryerror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie le libelle derniere erreur
|
|
||||||
*
|
|
||||||
* @return string lasterror
|
|
||||||
*/
|
|
||||||
function lasterror()
|
|
||||||
{
|
|
||||||
return $this->lasterror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie le code derniere erreur
|
|
||||||
*
|
|
||||||
* @return string lasterrno
|
|
||||||
*/
|
|
||||||
function lasterrno()
|
|
||||||
{
|
|
||||||
return $this->lasterrno;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return generic error code of last operation.
|
* Return generic error code of last operation.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -34,8 +34,6 @@ require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php';
|
|||||||
*/
|
*/
|
||||||
class DoliDBPgsql extends DoliDB
|
class DoliDBPgsql extends DoliDB
|
||||||
{
|
{
|
||||||
//! Database handler
|
|
||||||
var $db;
|
|
||||||
//! Database type
|
//! Database type
|
||||||
public $type='pgsql'; // Name of manager
|
public $type='pgsql'; // Name of manager
|
||||||
//! Database label
|
//! Database label
|
||||||
@ -46,29 +44,9 @@ class DoliDBPgsql extends DoliDB
|
|||||||
var $forcecollate=''; // Can't be static as it may be forced with a dynamic value
|
var $forcecollate=''; // Can't be static as it may be forced with a dynamic value
|
||||||
//! Version min database
|
//! Version min database
|
||||||
static $versionmin=array(8,4,0); // Version min database
|
static $versionmin=array(8,4,0); // Version min database
|
||||||
|
//! Resultset of last query
|
||||||
//! Resultset of last request
|
|
||||||
private $_results;
|
private $_results;
|
||||||
|
|
||||||
var $connected; // 1 si connecte, 0 sinon
|
|
||||||
var $database_selected; // 1 si base selectionne, 0 sinon
|
|
||||||
var $database_name; //! Nom base selectionnee
|
|
||||||
var $database_user; //! Nom user base
|
|
||||||
//! >=1 if a transaction is opened, 0 otherwise
|
|
||||||
var $transaction_opened;
|
|
||||||
var $lastquery;
|
|
||||||
// Saved last error
|
|
||||||
var $lastqueryerror;
|
|
||||||
var $lasterror;
|
|
||||||
var $lasterrno;
|
|
||||||
|
|
||||||
var $unescapeslashquot=0; // By default we do not force the unescape of \'. This is used only to process sql with mysql escaped data.
|
|
||||||
var $standard_conforming_strings=1; // Database has option standard_conforming_strings to on
|
|
||||||
|
|
||||||
var $ok;
|
|
||||||
var $error;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
* This create an opened connexion to a database server and eventually to a database
|
* This create an opened connexion to a database server and eventually to a database
|
||||||
@ -424,16 +402,6 @@ class DoliDBPgsql extends DoliDB
|
|||||||
return $this->db;
|
return $this->db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return label of manager
|
|
||||||
*
|
|
||||||
* @return string Label
|
|
||||||
*/
|
|
||||||
function getLabel()
|
|
||||||
{
|
|
||||||
return $this->label;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database server
|
* Return version of database server
|
||||||
*
|
*
|
||||||
@ -450,16 +418,6 @@ class DoliDBPgsql extends DoliDB
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return version of database server into an array
|
|
||||||
*
|
|
||||||
* @return array Version array
|
|
||||||
*/
|
|
||||||
function getVersionArray()
|
|
||||||
{
|
|
||||||
return explode('.',$this->getVersion());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database client driver
|
* Return version of database client driver
|
||||||
*
|
*
|
||||||
@ -752,23 +710,6 @@ class DoliDBPgsql extends DoliDB
|
|||||||
return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
|
return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true)
|
|
||||||
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
|
||||||
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
|
||||||
*
|
|
||||||
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
|
||||||
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
|
||||||
* @return date Date TMS
|
|
||||||
*/
|
|
||||||
function jdate($string, $gm=false)
|
|
||||||
{
|
|
||||||
$string=preg_replace('/([^0-9])/i','',$string);
|
|
||||||
$tmp=$string.'000000';
|
|
||||||
$date=dol_mktime(substr($tmp,8,2),substr($tmp,10,2),substr($tmp,12,2),substr($tmp,4,2),substr($tmp,6,2),substr($tmp,0,4),$gm);
|
|
||||||
return $date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format a SQL IF
|
* Format a SQL IF
|
||||||
*
|
*
|
||||||
@ -782,47 +723,6 @@ class DoliDBPgsql extends DoliDB
|
|||||||
return '(CASE WHEN '.$test.' THEN '.$resok.' ELSE '.$resko.' END)';
|
return '(CASE WHEN '.$test.' THEN '.$resok.' ELSE '.$resko.' END)';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie la derniere requete soumise par la methode query()
|
|
||||||
*
|
|
||||||
* @return lastquery
|
|
||||||
*/
|
|
||||||
function lastquery()
|
|
||||||
{
|
|
||||||
return $this->lastquery;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie la derniere requete en erreur
|
|
||||||
*
|
|
||||||
* @return string lastqueryerror
|
|
||||||
*/
|
|
||||||
function lastqueryerror()
|
|
||||||
{
|
|
||||||
return $this->lastqueryerror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie le libelle derniere erreur
|
|
||||||
*
|
|
||||||
* @return string lasterror
|
|
||||||
*/
|
|
||||||
function lasterror()
|
|
||||||
{
|
|
||||||
return $this->lasterror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie le code derniere erreur
|
|
||||||
*
|
|
||||||
* @return string lasterrno
|
|
||||||
*/
|
|
||||||
function lasterrno()
|
|
||||||
{
|
|
||||||
return $this->lasterrno;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renvoie le code erreur generique de l'operation precedente.
|
* Renvoie le code erreur generique de l'operation precedente.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -31,42 +31,14 @@ require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php';
|
|||||||
*/
|
*/
|
||||||
class DoliDBSqlite extends DoliDB
|
class DoliDBSqlite extends DoliDB
|
||||||
{
|
{
|
||||||
//! Database handler
|
|
||||||
var $db;
|
|
||||||
//! Database type
|
//! Database type
|
||||||
public $type='sqlite';
|
public $type='sqlite';
|
||||||
//! Database label
|
//! Database label
|
||||||
static $label='PDO Sqlite';
|
static $label='PDO Sqlite';
|
||||||
//! Charset used to force charset when creating database
|
|
||||||
var $forcecharset='utf8'; // latin1, utf8. Can't be static as it may be forced with a dynamic value
|
|
||||||
//! Collate used to force collate when creating database
|
|
||||||
var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci. Can't be static as it may be forced with a dynamic value
|
|
||||||
//! Version min database
|
//! Version min database
|
||||||
static $versionmin=array(3,0,0);
|
static $versionmin=array(3,0,0);
|
||||||
//! Resultset of last request
|
//! Resultset of last query
|
||||||
private $_results;
|
private $_results;
|
||||||
//! 1 if connected, 0 else
|
|
||||||
var $connected;
|
|
||||||
//! 1 if database selected, 0 else
|
|
||||||
var $database_selected;
|
|
||||||
//! Database name selected
|
|
||||||
var $database_name;
|
|
||||||
//! Nom user base
|
|
||||||
var $database_user;
|
|
||||||
//! >=1 if a transaction is opened, 0 otherwise
|
|
||||||
var $transaction_opened;
|
|
||||||
//! Last executed request
|
|
||||||
var $lastquery;
|
|
||||||
//! Last failed executed request
|
|
||||||
var $lastqueryerror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterror;
|
|
||||||
//! Message erreur mysql
|
|
||||||
var $lasterrno;
|
|
||||||
|
|
||||||
var $ok;
|
|
||||||
var $error;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
@ -351,15 +323,6 @@ class DoliDBSqlite extends DoliDB
|
|||||||
return $this->db;
|
return $this->db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return label of manager
|
|
||||||
*
|
|
||||||
* @return string Label
|
|
||||||
*/
|
|
||||||
function getLabel()
|
|
||||||
{
|
|
||||||
return $this->label;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database server
|
* Return version of database server
|
||||||
@ -373,16 +336,6 @@ class DoliDBSqlite extends DoliDB
|
|||||||
return $row[0];
|
return $row[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return version of database server into an array
|
|
||||||
*
|
|
||||||
* @return array Version array
|
|
||||||
*/
|
|
||||||
function getVersionArray()
|
|
||||||
{
|
|
||||||
return explode('.',$this->getVersion());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return version of database client driver
|
* Return version of database client driver
|
||||||
*
|
*
|
||||||
@ -415,33 +368,6 @@ class DoliDBSqlite extends DoliDB
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start transaction
|
|
||||||
*
|
|
||||||
* @return int 1 if transaction successfuly opened or already opened, 0 if error
|
|
||||||
*/
|
|
||||||
function begin()
|
|
||||||
{
|
|
||||||
if (! $this->transaction_opened)
|
|
||||||
{
|
|
||||||
$ret=$this->query("BEGIN");
|
|
||||||
if ($ret)
|
|
||||||
{
|
|
||||||
$this->transaction_opened++;
|
|
||||||
dol_syslog("BEGIN Transaction",LOG_DEBUG);
|
|
||||||
dol_syslog('',0,1);
|
|
||||||
}
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->transaction_opened++;
|
|
||||||
dol_syslog('',0,1);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate a database transaction
|
* Validate a database transaction
|
||||||
*
|
*
|
||||||
@ -662,90 +588,6 @@ class DoliDBSqlite extends DoliDB
|
|||||||
return $this->db->quote($stringtoencode);
|
return $this->db->quote($stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a GM Timestamp date into a PHP server TZ to insert into a date field.
|
|
||||||
* Function to use to build INSERT, UPDATE or WHERE predica
|
|
||||||
*
|
|
||||||
* @param string $param Date TMS to convert
|
|
||||||
* @return string Date in a string YYYYMMDDHHMMSS
|
|
||||||
*/
|
|
||||||
function idate($param)
|
|
||||||
{
|
|
||||||
return dol_print_date($param,"%Y%m%d%H%M%S");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true)
|
|
||||||
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
|
||||||
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
|
||||||
*
|
|
||||||
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
|
||||||
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
|
||||||
* @return date Date TMS
|
|
||||||
*/
|
|
||||||
function jdate($string, $gm=false)
|
|
||||||
{
|
|
||||||
$string=preg_replace('/([^0-9])/i','',$string);
|
|
||||||
$tmp=$string.'000000';
|
|
||||||
$date=dol_mktime(substr($tmp,8,2),substr($tmp,10,2),substr($tmp,12,2),substr($tmp,4,2),substr($tmp,6,2),substr($tmp,0,4),$gm);
|
|
||||||
return $date;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format a SQL IF
|
|
||||||
*
|
|
||||||
* @param string $test Test string (example: 'cd.statut=0', 'field IS NULL')
|
|
||||||
* @param string $resok resultat si test egal
|
|
||||||
* @param string $resko resultat si test non egal
|
|
||||||
* @return string SQL string
|
|
||||||
*/
|
|
||||||
function ifsql($test,$resok,$resko)
|
|
||||||
{
|
|
||||||
return 'IF('.$test.','.$resok.','.$resko.')';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie la derniere requete soumise par la methode query()
|
|
||||||
*
|
|
||||||
* @return lastquery
|
|
||||||
*/
|
|
||||||
function lastquery()
|
|
||||||
{
|
|
||||||
return $this->lastquery;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last query in error
|
|
||||||
*
|
|
||||||
* @return string lastqueryerror
|
|
||||||
*/
|
|
||||||
function lastqueryerror()
|
|
||||||
{
|
|
||||||
return $this->lastqueryerror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last error label
|
|
||||||
*
|
|
||||||
* @return string lasterror
|
|
||||||
*/
|
|
||||||
function lasterror()
|
|
||||||
{
|
|
||||||
return $this->lasterror;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return last error code
|
|
||||||
*
|
|
||||||
* @return string lasterrno
|
|
||||||
*/
|
|
||||||
function lasterrno()
|
|
||||||
{
|
|
||||||
return $this->lasterrno;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renvoie le code erreur generique de l'operation precedente.
|
* Renvoie le code erreur generique de l'operation precedente.
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user