Fix: Try to fix to allow reserved keyworks into PGSQL user records.
This commit is contained in:
parent
6dc97d6da6
commit
761c613356
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/install/etape2.php
|
* \file htdocs/install/etape2.php
|
||||||
* \ingroup install
|
* \ingroup install
|
||||||
* \brief Cree les tables, cles primaires, cles etrangeres, index et fonctions en base puis charge les donnees de reference
|
* \brief Create tables, primary keys, foreign keys, indexes and functions into database and then load reference data
|
||||||
* \version $Id$
|
* \version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -173,11 +173,12 @@ if ($_POST["action"] == "set")
|
|||||||
$buf = fgets($fp, 4096);
|
$buf = fgets($fp, 4096);
|
||||||
if (substr($buf, 0, 2) <> '--')
|
if (substr($buf, 0, 2) <> '--')
|
||||||
{
|
{
|
||||||
|
/* I disable this as it is already done into the query function
|
||||||
if ($choix != 1) // All databases except Mysql
|
if ($choix != 1) // All databases except Mysql
|
||||||
{
|
{
|
||||||
$buf=$db->convertSQLFromMysql($buf);
|
$buf=$db->convertSQLFromMysql($buf,'dml');
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
$buffer .= $buf;
|
$buffer .= $buf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -193,7 +194,7 @@ if ($_POST["action"] == "set")
|
|||||||
}
|
}
|
||||||
|
|
||||||
dolibarr_install_syslog("Request: ".$buffer,LOG_DEBUG);
|
dolibarr_install_syslog("Request: ".$buffer,LOG_DEBUG);
|
||||||
$resql=$db->query($buffer);
|
$resql=$db->query($buffer,0,'dml');
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
// print "<td>OK requete ==== $buffer</td></tr>";
|
// print "<td>OK requete ==== $buffer</td></tr>";
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
||||||
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
|
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
|
||||||
@ -170,6 +170,7 @@ if ($_POST["action"] == "set" || preg_match('/upgrade/i',$_POST["action"]))
|
|||||||
$newuser->admin=1;
|
$newuser->admin=1;
|
||||||
$newuser->entity=0;
|
$newuser->entity=0;
|
||||||
|
|
||||||
|
$conf->global->USER_MAIL_REQUIRED=0; // Force global option to be sure to create a new user with no email
|
||||||
$result=$newuser->create($createuser,1);
|
$result=$newuser->create($createuser,1);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -75,14 +75,14 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Ouverture d'une connexion vers le serveur et eventuellement une database.
|
* Ouverture d'une connexion vers le serveur et eventuellement une database.
|
||||||
* \param type Type de base de donnees (mysql ou pgsql)
|
* @param type Type de base de donnees (mysql ou pgsql)
|
||||||
* \param host Addresse de la base de donnees
|
* @param host Addresse de la base de donnees
|
||||||
* \param user Nom de l'utilisateur autorise
|
* @param user Nom de l'utilisateur autorise
|
||||||
* \param pass Mot de passe
|
* @param pass Mot de passe
|
||||||
* \param name Nom de la database
|
* @param name Nom de la database
|
||||||
* \param port Port of database server
|
* @param port Port of database server
|
||||||
* \return int 1 en cas de succes, 0 sinon
|
* @return int 1 en cas de succes, 0 sinon
|
||||||
*/
|
*/
|
||||||
function DoliDb($type='mssql', $host, $user, $pass, $name='', $port=0)
|
function DoliDb($type='mssql', $host, $user, $pass, $name='', $port=0)
|
||||||
{
|
{
|
||||||
@ -155,19 +155,20 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Convert a SQL request in mysql syntax to database syntax
|
* Convert a SQL request in Mysql syntax to PostgreSQL syntax
|
||||||
* \param line SQL request line to convert
|
* @param line SQL request line to convert
|
||||||
* \return string SQL request line converted
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return string SQL request line converted
|
||||||
*/
|
*/
|
||||||
function convertSQLFromMysql($line)
|
function convertSQLFromMysql($line,$type='ddl')
|
||||||
{
|
{
|
||||||
return $line;
|
return $line;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Selectionne une database.
|
* Selectionne une database.
|
||||||
* \param database Nom de la database
|
* @param database Nom de la database
|
||||||
* \return boolean true si ok, false si ko
|
* @return boolean true si ok, false si ko
|
||||||
*/
|
*/
|
||||||
function select_db($database)
|
function select_db($database)
|
||||||
{
|
{
|
||||||
@ -175,14 +176,14 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Connection vers le serveur
|
* Connection vers le serveur
|
||||||
\param host addresse de la base de donnees
|
* @param host addresse de la base de donnees
|
||||||
\param login nom de l'utilisateur autoris
|
* @param login nom de l'utilisateur autoris
|
||||||
\param passwd mot de passe
|
* @param passwd mot de passe
|
||||||
\param name nom de la database (ne sert pas sous mysql, sert sous pgsql)
|
* @param name nom de la database (ne sert pas sous mysql, sert sous pgsql)
|
||||||
\param port Port of database server
|
* @param port Port of database server
|
||||||
\return resource handler d'acces a la base
|
* @return resource handler d'acces a la base
|
||||||
\seealso close
|
* @see close
|
||||||
*/
|
*/
|
||||||
function connect($host, $login, $passwd, $name, $port=0)
|
function connect($host, $login, $passwd, $name, $port=0)
|
||||||
{
|
{
|
||||||
@ -230,9 +231,9 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fermeture d'une connexion vers une database.
|
* \brief Fermeture d'une connexion vers une database.
|
||||||
\return resource
|
* \return resource
|
||||||
\seealso connect
|
* \see connect
|
||||||
*/
|
*/
|
||||||
function close()
|
function close()
|
||||||
{
|
{
|
||||||
@ -242,8 +243,8 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Debut d'une transaction.
|
* \brief Debut d'une transaction.
|
||||||
\return int 1 si ouverture transaction ok ou deja ouverte, 0 en cas d'erreur
|
* \return int 1 si ouverture transaction ok ou deja ouverte, 0 en cas d'erreur
|
||||||
*/
|
*/
|
||||||
function begin()
|
function begin()
|
||||||
{
|
{
|
||||||
@ -265,8 +266,9 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Validation d'une transaction
|
* Validate a database transaction
|
||||||
\return int 1 si validation ok ou niveau de transaction non ouverte, 0 en cas d'erreur
|
* @param log Add more log to default log line
|
||||||
|
* @return int 1 if validation is OK or transaction level no started, 0 if ERROR
|
||||||
*/
|
*/
|
||||||
function commit()
|
function commit()
|
||||||
{
|
{
|
||||||
@ -288,8 +290,8 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Annulation d'une transaction et retour aux anciennes valeurs
|
* \brief Annulation d'une transaction et retour aux anciennes valeurs
|
||||||
\return int 1 si annulation ok ou transaction non ouverte, 0 en cas d'erreur
|
* \return int 1 si annulation ok ou transaction non ouverte, 0 en cas d'erreur
|
||||||
*/
|
*/
|
||||||
function rollback()
|
function rollback()
|
||||||
{
|
{
|
||||||
@ -308,12 +310,14 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Effectue une requete et renvoi le resultset de reponse de la base
|
* Execute a SQL request and return the resultset
|
||||||
* \param query SQL query string
|
* @param query SQL query string
|
||||||
* \param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
* @param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
||||||
* \return resource Resultset of answer
|
* Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
|
||||||
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return resource Resultset of answer
|
||||||
*/
|
*/
|
||||||
function query($query,$usesavepoint=0)
|
function query($query,$usesavepoint=0,$type='ddl')
|
||||||
{
|
{
|
||||||
$query = trim($query);
|
$query = trim($query);
|
||||||
|
|
||||||
@ -409,9 +413,9 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie les donnees dans un tableau.
|
* \brief Renvoie les donnees dans un tableau.
|
||||||
\param resultset Curseur de la requete voulue
|
* \param resultset Curseur de la requete voulue
|
||||||
\return array
|
* \return array
|
||||||
*/
|
*/
|
||||||
function fetch_array($resultset)
|
function fetch_array($resultset)
|
||||||
{
|
{
|
||||||
@ -422,9 +426,9 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie les donnees comme un tableau.
|
* \brief Renvoie les donnees comme un tableau.
|
||||||
\param resultset Curseur de la requete voulue
|
* \param resultset Curseur de la requete voulue
|
||||||
\return array
|
* \return array
|
||||||
*/
|
*/
|
||||||
function fetch_row($resultset)
|
function fetch_row($resultset)
|
||||||
{
|
{
|
||||||
@ -434,10 +438,10 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie le nombre de lignes dans le resultat d'une requete SELECT
|
* \brief Renvoie le nombre de lignes dans le resultat d'une requete SELECT
|
||||||
\see affected_rows
|
* \see affected_rows
|
||||||
\param resultset Curseur de la requete voulue
|
* \param resultset Curseur de la requete voulue
|
||||||
\return int Nombre de lignes
|
* \return int Nombre de lignes
|
||||||
*/
|
*/
|
||||||
function num_rows($resultset)
|
function num_rows($resultset)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -74,14 +74,14 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Ouverture d'une connexion vers le serveur et eventuellement une database.
|
* Ouverture d'une connexion vers le serveur et eventuellement une database.
|
||||||
* \param type Type de base de donnees (mysql ou pgsql)
|
* @param type Type de base de donnees (mysql ou pgsql)
|
||||||
* \param host Addresse de la base de donnees
|
* @param host Addresse de la base de donnees
|
||||||
* \param user Nom de l'utilisateur autorise
|
* @param user Nom de l'utilisateur autorise
|
||||||
* \param pass Mot de passe
|
* @param pass Mot de passe
|
||||||
* \param name Nom de la database
|
* @param name Nom de la database
|
||||||
* \param port Port of database server
|
* @param port Port of database server
|
||||||
* \return int 1 en cas de succes, 0 sinon
|
* @return int 1 en cas de succes, 0 sinon
|
||||||
*/
|
*/
|
||||||
function DoliDb($type='mysql', $host, $user, $pass, $name='', $port=0)
|
function DoliDb($type='mysql', $host, $user, $pass, $name='', $port=0)
|
||||||
{
|
{
|
||||||
@ -182,11 +182,12 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Convert a SQL request in mysql syntax to database syntax
|
* Convert a SQL request in Mysql syntax to PostgreSQL syntax
|
||||||
* \param line SQL request line to convert
|
* @param line SQL request line to convert
|
||||||
* \return string SQL request line converted
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return string SQL request line converted
|
||||||
*/
|
*/
|
||||||
function convertSQLFromMysql($line)
|
function convertSQLFromMysql($line,$type='ddl')
|
||||||
{
|
{
|
||||||
return $line;
|
return $line;
|
||||||
}
|
}
|
||||||
@ -309,9 +310,9 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Validation d'une transaction
|
* Validate a database transaction
|
||||||
* \param log Add more log to default log line
|
* @param log Add more log to default log line
|
||||||
* \return int 1 si validation ok ou niveau de transaction non ouverte, 0 en cas d'erreur
|
* @return int 1 if validation is OK or transaction level no started, 0 if ERROR
|
||||||
*/
|
*/
|
||||||
function commit($log='')
|
function commit($log='')
|
||||||
{
|
{
|
||||||
@ -354,13 +355,14 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Execute a SQL request and return the resultset
|
* Execute a SQL request and return the resultset
|
||||||
* \param query SQL query string
|
* @param query SQL query string
|
||||||
* \param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
* @param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
||||||
* Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
|
* Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
|
||||||
* \return resource Resultset of answer
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return resource Resultset of answer
|
||||||
*/
|
*/
|
||||||
function query($query,$usesavepoint=0)
|
function query($query,$usesavepoint=0,$type='ddl')
|
||||||
{
|
{
|
||||||
$query = trim($query);
|
$query = trim($query);
|
||||||
|
|
||||||
@ -399,7 +401,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function fetch_object($resultset)
|
function fetch_object($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
return mysql_fetch_object($resultset);
|
return mysql_fetch_object($resultset);
|
||||||
}
|
}
|
||||||
@ -411,7 +413,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function fetch_array($resultset)
|
function fetch_array($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
return mysql_fetch_array($resultset);
|
return mysql_fetch_array($resultset);
|
||||||
}
|
}
|
||||||
@ -424,7 +426,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function fetch_row($resultset)
|
function fetch_row($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
return @mysql_fetch_row($resultset);
|
return @mysql_fetch_row($resultset);
|
||||||
}
|
}
|
||||||
@ -437,7 +439,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function num_rows($resultset)
|
function num_rows($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
return mysql_num_rows($resultset);
|
return mysql_num_rows($resultset);
|
||||||
}
|
}
|
||||||
@ -450,7 +452,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function affected_rows($resultset)
|
function affected_rows($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
// mysql necessite un link de base pour cette fonction contrairement
|
// mysql necessite un link de base pour cette fonction contrairement
|
||||||
// a pqsql qui prend un resultset
|
// a pqsql qui prend un resultset
|
||||||
@ -464,7 +466,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function free($resultset=0)
|
function free($resultset=0)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
// Si resultset en est un, on libere la memoire
|
// Si resultset en est un, on libere la memoire
|
||||||
if (is_resource($resultset)) mysql_free_result($resultset);
|
if (is_resource($resultset)) mysql_free_result($resultset);
|
||||||
|
|||||||
@ -75,14 +75,14 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Ouverture d'une connexion vers le serveur et eventuellement une database.
|
* Ouverture d'une connexion vers le serveur et eventuellement une database.
|
||||||
* \param type Type de base de donnees (mysql ou pgsql)
|
* @param type Type de base de donnees (mysql ou pgsql)
|
||||||
* \param host Addresse de la base de donnees
|
* @param host Addresse de la base de donnees
|
||||||
* \param user Nom de l'utilisateur autorise
|
* @param user Nom de l'utilisateur autorise
|
||||||
* \param pass Mot de passe
|
* @param pass Mot de passe
|
||||||
* \param name Nom de la database
|
* @param name Nom de la database
|
||||||
* \param port Port of database server
|
* @param port Port of database server
|
||||||
* \return int 1 en cas de succes, 0 sinon
|
* @return int 1 en cas de succes, 0 sinon
|
||||||
*/
|
*/
|
||||||
function DoliDb($type='mysqli', $host, $user, $pass, $name='', $port=0)
|
function DoliDb($type='mysqli', $host, $user, $pass, $name='', $port=0)
|
||||||
{
|
{
|
||||||
@ -185,11 +185,12 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Convert a SQL request in mysql syntax to database syntax
|
* Convert a SQL request in Mysql syntax to PostgreSQL syntax
|
||||||
* \param line SQL request line to convert
|
* @param line SQL request line to convert
|
||||||
* \return string SQL request line converted
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return string SQL request line converted
|
||||||
*/
|
*/
|
||||||
function convertSQLFromMysql($line)
|
function convertSQLFromMysql($line,$type='ddl')
|
||||||
{
|
{
|
||||||
return $line;
|
return $line;
|
||||||
}
|
}
|
||||||
@ -316,9 +317,9 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Validation d'une transaction
|
* Validate a database transaction
|
||||||
* \param log Add more log to default log line
|
* @param log Add more log to default log line
|
||||||
* \return int 1 si validation ok ou niveau de transaction non ouverte, 0 en cas d'erreur
|
* @return int 1 if validation is OK or transaction level no started, 0 if ERROR
|
||||||
*/
|
*/
|
||||||
function commit($log='')
|
function commit($log='')
|
||||||
{
|
{
|
||||||
@ -361,13 +362,14 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Execute a SQL request and return the resultset
|
* Execute a SQL request and return the resultset
|
||||||
* \param query SQL query string
|
* @param query SQL query string
|
||||||
* \param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
* @param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
||||||
* Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
|
* Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
|
||||||
* \return resource Resultset of answer
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return resource Resultset of answer
|
||||||
*/
|
*/
|
||||||
function query($query,$usesavepoint=0)
|
function query($query,$usesavepoint=0,$type='ddl')
|
||||||
{
|
{
|
||||||
$query = trim($query);
|
$query = trim($query);
|
||||||
if (! $this->database_name)
|
if (! $this->database_name)
|
||||||
@ -417,7 +419,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function fetch_array($resultset)
|
function fetch_array($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_object($resultset)) { $resultset=$this->results; }
|
if (! is_object($resultset)) { $resultset=$this->results; }
|
||||||
return mysqli_fetch_array($resultset);
|
return mysqli_fetch_array($resultset);
|
||||||
}
|
}
|
||||||
@ -429,7 +431,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function fetch_row($resultset)
|
function fetch_row($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_bool($resultset))
|
if (! is_bool($resultset))
|
||||||
{
|
{
|
||||||
if (! is_object($resultset)) { $resultset=$this->results; }
|
if (! is_object($resultset)) { $resultset=$this->results; }
|
||||||
@ -450,7 +452,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function num_rows($resultset)
|
function num_rows($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_object($resultset)) { $resultset=$this->results; }
|
if (! is_object($resultset)) { $resultset=$this->results; }
|
||||||
return mysqli_num_rows($resultset);
|
return mysqli_num_rows($resultset);
|
||||||
}
|
}
|
||||||
@ -464,7 +466,7 @@ class DoliDb
|
|||||||
|
|
||||||
function affected_rows($resultset)
|
function affected_rows($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_object($resultset)) { $resultset=$this->results; }
|
if (! is_object($resultset)) { $resultset=$this->results; }
|
||||||
// mysql necessite un link de base pour cette fonction contrairement
|
// mysql necessite un link de base pour cette fonction contrairement
|
||||||
// a pqsql qui prend un resultset
|
// a pqsql qui prend un resultset
|
||||||
@ -478,7 +480,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function free($resultset=0)
|
function free($resultset=0)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_object($resultset)) { $resultset=$this->results; }
|
if (! is_object($resultset)) { $resultset=$this->results; }
|
||||||
// Si resultset en est un, on libere la memoire
|
// Si resultset en est un, on libere la memoire
|
||||||
if (is_object($resultset)) mysqli_free_result($resultset);
|
if (is_object($resultset)) mysqli_free_result($resultset);
|
||||||
|
|||||||
@ -149,11 +149,12 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Convert a SQL request in Mysql syntax to PostgreSQL syntax
|
* Convert a SQL request in Mysql syntax to PostgreSQL syntax
|
||||||
* \param line SQL request line to convert
|
* @param line SQL request line to convert
|
||||||
* \return string SQL request line converted
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return string SQL request line converted
|
||||||
*/
|
*/
|
||||||
function convertSQLFromMysql($line)
|
function convertSQLFromMysql($line,$type='ddl')
|
||||||
{
|
{
|
||||||
# Removed empty line if this is a comment line for SVN tagging
|
# Removed empty line if this is a comment line for SVN tagging
|
||||||
if (preg_match('/^--\s\$Id/i',$line)) {
|
if (preg_match('/^--\s\$Id/i',$line)) {
|
||||||
@ -165,6 +166,8 @@ class DoliDb
|
|||||||
return $line;
|
return $line;
|
||||||
}
|
}
|
||||||
if ($line != "")
|
if ($line != "")
|
||||||
|
{
|
||||||
|
if ($type == 'dml')
|
||||||
{
|
{
|
||||||
# we are inside create table statement so lets process datatypes
|
# we are inside create table statement so lets process datatypes
|
||||||
if (preg_match('/(ISAM|innodb)/i',$line)) { # end of create table sequence
|
if (preg_match('/(ISAM|innodb)/i',$line)) { # end of create table sequence
|
||||||
@ -196,7 +199,6 @@ class DoliDb
|
|||||||
$line=preg_replace('/datetime/i','timestamp',$line);
|
$line=preg_replace('/datetime/i','timestamp',$line);
|
||||||
|
|
||||||
# double -> numeric
|
# double -> numeric
|
||||||
// FIXME problem if value contain "double" word
|
|
||||||
$line=preg_replace('/^double/i','numeric',$line);
|
$line=preg_replace('/^double/i','numeric',$line);
|
||||||
$line=preg_replace('/(\s*)double/i','\\1numeric',$line);
|
$line=preg_replace('/(\s*)double/i','\\1numeric',$line);
|
||||||
# float -> numeric
|
# float -> numeric
|
||||||
@ -209,9 +211,6 @@ class DoliDb
|
|||||||
$line=preg_replace('/unique index\s*\((\w+\s*,\s*\w+)\)/i','UNIQUE\(\\1\)',$line);
|
$line=preg_replace('/unique index\s*\((\w+\s*,\s*\w+)\)/i','UNIQUE\(\\1\)',$line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// To have postgresql case sensitive
|
|
||||||
$line=str_replace(' LIKE \'',' ILIKE \'',$line);
|
|
||||||
|
|
||||||
# We remove end of requests "AFTER fieldxxx"
|
# We remove end of requests "AFTER fieldxxx"
|
||||||
$line=preg_replace('/AFTER [a-z0-9_]+/i','',$line);
|
$line=preg_replace('/AFTER [a-z0-9_]+/i','',$line);
|
||||||
|
|
||||||
@ -263,6 +262,10 @@ class DoliDb
|
|||||||
$line = "-- ".$line." replaced by --\n";
|
$line = "-- ".$line." replaced by --\n";
|
||||||
$line.= "CREATE ".(preg_match('/UNIQUE/',$reg[2])?'UNIQUE ':'')."INDEX ".$idxname." ON ".$tablename." (".$fieldlist.")";
|
$line.= "CREATE ".(preg_match('/UNIQUE/',$reg[2])?'UNIQUE ':'')."INDEX ".$idxname." ON ".$tablename." (".$fieldlist.")";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// To have postgresql case sensitive
|
||||||
|
$line=str_replace(' LIKE \'',' ILIKE \'',$line);
|
||||||
|
|
||||||
// Delete using criteria on other table must not declare twice the deleted table
|
// Delete using criteria on other table must not declare twice the deleted table
|
||||||
// DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
|
// DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
|
||||||
@ -306,28 +309,26 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Select a database
|
* Select a database.
|
||||||
* \param database nom de la database
|
* Ici postgresql n'a aucune fonction equivalente de mysql_select_db
|
||||||
* \return boolean true si ok, false si ko
|
* On compare juste manuellement si la database choisie est bien celle activee par la connexion
|
||||||
* \remarks Ici postgresql n'a aucune fonction equivalente de mysql_select_db
|
* @param database nom de la database
|
||||||
* \remarks On compare juste manuellement si la database choisie est bien celle activee par la connexion
|
* @return boolean true si ok, false si ko
|
||||||
*/
|
*/
|
||||||
function select_db($database)
|
function select_db($database)
|
||||||
{
|
{
|
||||||
if ($database == $this->database_name)
|
if ($database == $this->database_name) return true;
|
||||||
return true;
|
else return false;
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Connection vers le serveur
|
* Connection vers le serveur
|
||||||
* \param host addresse de la base de donnees
|
* @param host addresse de la base de donnees
|
||||||
* \param login nom de l'utilisateur autorise
|
* @param login nom de l'utilisateur autorise
|
||||||
* \param passwd mot de passe
|
* @param passwd mot de passe
|
||||||
* \param name nom de la database (ne sert pas sous mysql, sert sous pgsql)
|
* @param name nom de la database (ne sert pas sous mysql, sert sous pgsql)
|
||||||
* \param port Port of database server
|
* @param port Port of database server
|
||||||
* \return resource handler d'acces a la base
|
* @return resource handler d'acces a la base
|
||||||
*/
|
*/
|
||||||
function connect($host, $login, $passwd, $name, $port=0)
|
function connect($host, $login, $passwd, $name, $port=0)
|
||||||
{
|
{
|
||||||
@ -432,10 +433,11 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Validation d'une transaction
|
* Validate a database transaction
|
||||||
* \return int 1 si validation ok ou niveau de transaction non ouverte, 0 en cas d'erreur
|
* @param log Add more log to default log line
|
||||||
|
* @return int 1 if validation is OK or transaction level no started, 0 if ERROR
|
||||||
*/
|
*/
|
||||||
function commit()
|
function commit($log='')
|
||||||
{
|
{
|
||||||
if ($this->transaction_opened<=1)
|
if ($this->transaction_opened<=1)
|
||||||
{
|
{
|
||||||
@ -476,17 +478,18 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Convert request to PostgreSQL syntax, execute it and return the resultset
|
* Convert request to PostgreSQL syntax, execute it and return the resultset.
|
||||||
* \param query SQL query string
|
* @param query SQL query string
|
||||||
* \param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollback to savepoint if error (this allow to have some request with errors inside global transactions).
|
* @param usesavepoint 0=Default mode, 1=Run a savepoint before and a rollback to savepoint if error (this allow to have some request with errors inside global transactions).
|
||||||
* \return resource Resultset of answer
|
* @param type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
|
* @return resource Resultset of answer
|
||||||
*/
|
*/
|
||||||
function query($query,$usesavepoint=0)
|
function query($query,$usesavepoint=0,$type='ddl')
|
||||||
{
|
{
|
||||||
$query = trim($query);
|
$query = trim($query);
|
||||||
|
|
||||||
// Convert MySQL syntax to PostgresSQL syntax
|
// Convert MySQL syntax to PostgresSQL syntax
|
||||||
$query=$this->convertSQLFromMysql($query);
|
$query=$this->convertSQLFromMysql($query,$type);
|
||||||
//print "FF\n".$query."<br>\n";
|
//print "FF\n".$query."<br>\n";
|
||||||
|
|
||||||
// Fix bad formed requests. If request contains a date without quotes, we fix this but this should not occurs.
|
// Fix bad formed requests. If request contains a date without quotes, we fix this but this should not occurs.
|
||||||
@ -538,7 +541,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function fetch_object($resultset)
|
function fetch_object($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
return pg_fetch_object($resultset);
|
return pg_fetch_object($resultset);
|
||||||
}
|
}
|
||||||
@ -550,7 +553,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function fetch_array($resultset)
|
function fetch_array($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
return pg_fetch_array($resultset);
|
return pg_fetch_array($resultset);
|
||||||
}
|
}
|
||||||
@ -575,7 +578,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function num_rows($resultset)
|
function num_rows($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
return pg_num_rows($resultset);
|
return pg_num_rows($resultset);
|
||||||
}
|
}
|
||||||
@ -588,7 +591,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function affected_rows($resultset)
|
function affected_rows($resultset)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
// pgsql necessite un resultset pour cette fonction contrairement
|
// pgsql necessite un resultset pour cette fonction contrairement
|
||||||
// a mysql qui prend un link de base
|
// a mysql qui prend un link de base
|
||||||
@ -602,9 +605,9 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function free($resultset=0)
|
function free($resultset=0)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// If resultset not provided, we take the last used by connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->results; }
|
if (! is_resource($resultset)) { $resultset=$this->results; }
|
||||||
// Si resultset en est un, on libere la m<EFBFBD>moire
|
// Si resultset en est un, on libere la memoire
|
||||||
if (is_resource($resultset)) pg_free_result($resultset);
|
if (is_resource($resultset)) pg_free_result($resultset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -954,9 +954,9 @@ function dol_print_ip($ip,$mode=0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return true if email syntax is ok
|
* Return true if email syntax is ok.
|
||||||
* @param address email (Ex: "toto@titi.com", "John Do <johndo@titi.com>")
|
* @param address email (Ex: "toto@titi.com", "John Do <johndo@titi.com>")
|
||||||
* @return boolean true if email syntax is OK, false if KO
|
* @return boolean true if email syntax is OK, false if KO or empty string/
|
||||||
*/
|
*/
|
||||||
function isValidEmail($address)
|
function isValidEmail($address)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1283,7 +1283,6 @@ class Societe extends CommonObject
|
|||||||
* \param option Sur quoi pointe le lien ('', 'customer', 'supplier', 'compta')
|
* \param option Sur quoi pointe le lien ('', 'customer', 'supplier', 'compta')
|
||||||
* \param maxlen Longueur max libelle
|
* \param maxlen Longueur max libelle
|
||||||
* \return string Chaine avec URL
|
* \return string Chaine avec URL
|
||||||
* FIXME not in business class
|
|
||||||
*/
|
*/
|
||||||
function getNomUrl($withpicto=0,$option='customer',$maxlen=0)
|
function getNomUrl($withpicto=0,$option='customer',$maxlen=0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -677,10 +677,10 @@ class User extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Create user in database
|
* Create a user into database
|
||||||
* \param user Objet user qui demande la creation
|
* @param user Objet user qui demande la creation
|
||||||
* \param notrigger 1 ne declenche pas les triggers, 0 sinon
|
* @param notrigger 1 ne declenche pas les triggers, 0 sinon
|
||||||
* \return int <0 si KO, id compte cree si OK
|
* @return int <0 si KO, id compte cree si OK
|
||||||
*/
|
*/
|
||||||
function create($user,$notrigger=0)
|
function create($user,$notrigger=0)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user