Passed
Push — master ( 2a5ce0...65bdac )
by Alxarafe
23:02
created
dolibarr/htdocs/core/db/mssql.class.php 2 patches
Indentation   +962 added lines, -962 removed lines patch added patch discarded remove patch
@@ -38,101 +38,101 @@  discard block
 block discarded – undo
38 38
  */
39 39
 class DoliDBMssql extends DoliDB
40 40
 {
41
-	//! Database type
42
-	public $type='mssql';
43
-	//! Database label
44
-	const LABEL='MSSQL';
45
-	//! Charset used to force charset when creating database
46
-	var $forcecharset='latin1';      // Can't be static as it may be forced with a dynamic value
47
-	//! Collate used to force collate when creating database
48
-	var $forcecollate='latin1_swedish_ci';      // Can't be static as it may be forced with a dynamic value
49
-	//! Version min database
50
-	const VERSIONMIN='2000';
51
-	/** @var resource Resultset of last query */
52
-	private $_results;
41
+    //! Database type
42
+    public $type='mssql';
43
+    //! Database label
44
+    const LABEL='MSSQL';
45
+    //! Charset used to force charset when creating database
46
+    var $forcecharset='latin1';      // Can't be static as it may be forced with a dynamic value
47
+    //! Collate used to force collate when creating database
48
+    var $forcecollate='latin1_swedish_ci';      // Can't be static as it may be forced with a dynamic value
49
+    //! Version min database
50
+    const VERSIONMIN='2000';
51
+    /** @var resource Resultset of last query */
52
+    private $_results;
53 53
 
54 54
     /**
55
-	 *	Constructor.
56
-	 *	This create an opened connexion to a database server and eventually to a database
57
-	 *
58
-	 *	@param      string	$type		Type of database (mysql, pgsql...)
59
-	 *	@param	    string	$host		Address of database server
60
-	 *	@param	    string	$user		Nom de l'utilisateur autorise
61
-	 *	@param	    string	$pass		Mot de passe
62
-	 *	@param	    string	$name		Nom de la database
63
-	 *	@param	    int		$port		Port of database server
55
+     *	Constructor.
56
+     *	This create an opened connexion to a database server and eventually to a database
57
+     *
58
+     *	@param      string	$type		Type of database (mysql, pgsql...)
59
+     *	@param	    string	$host		Address of database server
60
+     *	@param	    string	$user		Nom de l'utilisateur autorise
61
+     *	@param	    string	$pass		Mot de passe
62
+     *	@param	    string	$name		Nom de la database
63
+     *	@param	    int		$port		Port of database server
64 64
      */
65
-	function __construct($type, $host, $user, $pass, $name='', $port=0)
66
-	{
67
-		global $langs;
65
+    function __construct($type, $host, $user, $pass, $name='', $port=0)
66
+    {
67
+        global $langs;
68 68
 
69
-		$this->database_user=$user;
69
+        $this->database_user=$user;
70 70
         $this->database_host=$host;
71 71
         $this->database_port=$port;
72
-		$this->transaction_opened=0;
73
-
74
-		if (! function_exists("mssql_connect"))
75
-		{
76
-			$this->connected = false;
77
-			$this->ok = false;
78
-			$this->error="Mssql PHP functions for using MSSql driver are not available in this version of PHP";
79
-			dol_syslog(get_class($this)."::DoliDBMssql : MSsql PHP functions for using MSsql driver are not available in this version of PHP",LOG_ERR);
80
-			return $this->ok;
81
-		}
82
-
83
-		if (! $host)
84
-		{
85
-			$this->connected = false;
86
-			$this->ok = false;
87
-			$this->error=$langs->trans("ErrorWrongHostParameter");
88
-			dol_syslog(get_class($this)."::DoliDBMssql : Erreur Connect, wrong host parameters",LOG_ERR);
89
-			return $this->ok;
90
-		}
91
-
92
-		// Essai connexion serveur
93
-		$this->db = $this->connect($host, $user, $pass, $name, $port);
94
-		if ($this->db)
95
-		{
96
-			// Si client connecte avec charset different de celui de la base Dolibarr
97
-			// (La base Dolibarr a ete forcee en this->forcecharset a l'install)
98
-			$this->connected = true;
99
-			$this->ok = true;
100
-		}
101
-		else
102
-		{
103
-			// host, login ou password incorrect
104
-			$this->connected = false;
105
-			$this->ok = false;
106
-			$this->error=mssql_get_last_message();
107
-			dol_syslog(get_class($this)."::DoliDBMssql : Erreur Connect mssql_get_last_message=".$this->error,LOG_ERR);
108
-		}
109
-
110
-		// Si connexion serveur ok et si connexion base demandee, on essaie connexion base
111
-		if ($this->connected && $name)
112
-		{
113
-			if ($this->select_db($name))
114
-			{
115
-				$this->database_selected = true;
116
-				$this->database_name = $name;
117
-				$this->ok = true;
118
-			}
119
-			else
120
-			{
121
-				$this->database_selected = false;
122
-				$this->database_name = '';
123
-				$this->ok = false;
124
-				$this->error=$this->error();
125
-				dol_syslog(get_class($this)."::DoliDBMssql : Erreur Select_db ".$this->error,LOG_ERR);
126
-			}
127
-		}
128
-		else
129
-		{
130
-			// Pas de selection de base demandee, ok ou ko
131
-			$this->database_selected = false;
132
-		}
133
-
134
-		return $this->ok;
135
-	}
72
+        $this->transaction_opened=0;
73
+
74
+        if (! function_exists("mssql_connect"))
75
+        {
76
+            $this->connected = false;
77
+            $this->ok = false;
78
+            $this->error="Mssql PHP functions for using MSSql driver are not available in this version of PHP";
79
+            dol_syslog(get_class($this)."::DoliDBMssql : MSsql PHP functions for using MSsql driver are not available in this version of PHP",LOG_ERR);
80
+            return $this->ok;
81
+        }
82
+
83
+        if (! $host)
84
+        {
85
+            $this->connected = false;
86
+            $this->ok = false;
87
+            $this->error=$langs->trans("ErrorWrongHostParameter");
88
+            dol_syslog(get_class($this)."::DoliDBMssql : Erreur Connect, wrong host parameters",LOG_ERR);
89
+            return $this->ok;
90
+        }
91
+
92
+        // Essai connexion serveur
93
+        $this->db = $this->connect($host, $user, $pass, $name, $port);
94
+        if ($this->db)
95
+        {
96
+            // Si client connecte avec charset different de celui de la base Dolibarr
97
+            // (La base Dolibarr a ete forcee en this->forcecharset a l'install)
98
+            $this->connected = true;
99
+            $this->ok = true;
100
+        }
101
+        else
102
+        {
103
+            // host, login ou password incorrect
104
+            $this->connected = false;
105
+            $this->ok = false;
106
+            $this->error=mssql_get_last_message();
107
+            dol_syslog(get_class($this)."::DoliDBMssql : Erreur Connect mssql_get_last_message=".$this->error,LOG_ERR);
108
+        }
109
+
110
+        // Si connexion serveur ok et si connexion base demandee, on essaie connexion base
111
+        if ($this->connected && $name)
112
+        {
113
+            if ($this->select_db($name))
114
+            {
115
+                $this->database_selected = true;
116
+                $this->database_name = $name;
117
+                $this->ok = true;
118
+            }
119
+            else
120
+            {
121
+                $this->database_selected = false;
122
+                $this->database_name = '';
123
+                $this->ok = false;
124
+                $this->error=$this->error();
125
+                dol_syslog(get_class($this)."::DoliDBMssql : Erreur Select_db ".$this->error,LOG_ERR);
126
+            }
127
+        }
128
+        else
129
+        {
130
+            // Pas de selection de base demandee, ok ou ko
131
+            $this->database_selected = false;
132
+        }
133
+
134
+        return $this->ok;
135
+    }
136 136
 
137 137
     /**
138 138
      *  Convert a SQL request in Mysql syntax to native syntax
@@ -141,83 +141,83 @@  discard block
 block discarded – undo
141 141
      *  @param     string	$type	Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
142 142
      *  @return    string   		SQL request line converted
143 143
      */
144
-	static function convertSQLFromMysql($line,$type='ddl')
145
-	{
146
-		return $line;
147
-	}
144
+    static function convertSQLFromMysql($line,$type='ddl')
145
+    {
146
+        return $line;
147
+    }
148 148
 
149 149
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
150
-	/**
151
-	 *	Select a database
152
-	 *
153
-	 *	@param	    string	$database	Name of database
154
-	 *	@return	    boolean  		    true if OK, false if KO
155
-	 */
156
-	function select_db($database)
157
-	{
150
+    /**
151
+     *	Select a database
152
+     *
153
+     *	@param	    string	$database	Name of database
154
+     *	@return	    boolean  		    true if OK, false if KO
155
+     */
156
+    function select_db($database)
157
+    {
158 158
         // phpcs:enable
159
-		return @mssql_select_db($database, $this->db);
160
-	}
161
-
162
-	/**
163
-	 *	Connexion to server
164
-	 *
165
-	 *	@param	    string	$host		database server host
166
-	 *	@param	    string	$login		login
167
-	 *	@param	    string	$passwd		password
168
-	 *	@param		string	$name		name of database (not used for mysql, used for pgsql)
169
-	 *	@param		int		$port		Port of database server
170
-	 *	@return		false|resource|true	Database access handler
171
-	 *	@see		close
172
-	 */
173
-	function connect($host, $login, $passwd, $name, $port=0)
174
-	{
175
-		dol_syslog(get_class($this)."::connect host=$host, port=$port, login=$login, passwd=--hidden--, name=$name");
176
-		$newhost=$host;
177
-		if ($port) $newhost.=':'.$port;
178
-		$this->db  = @mssql_connect($newhost, $login, $passwd);
179
-		//force les enregistrement en latin1 si la base est en utf8 par defaut
180
-		// Supprime car plante sur mon PHP-Mysql. De plus, la base est forcement en latin1 avec
181
-		// les nouvelles version de Dolibarr car force par l'install Dolibarr.
182
-		//$this->query('SET NAMES '.$this->forcecharset);
183
-		//print "Resultat fonction connect: ".$this->db;
184
-		$set_options=array('SET ANSI_PADDING ON;',
185
-		    "SET ANSI_NULLS ON;",
186
-		    "SET ANSI_WARNINGS ON;",
187
-		    "SET ARITHABORT ON;",
188
-		    "SET CONCAT_NULL_YIELDS_NULL ON;",
189
-		    "SET QUOTED_IDENTIFIER ON;"
190
-		);
191
-		mssql_query(implode(' ',$set_options),$this->db);
192
-
193
-		return $this->db;
194
-	}
195
-
196
-	/**
197
-	 *	Return version of database server
198
-	 *
199
-	 *	@return	        string      Version string
200
-	 */
201
-	function getVersion()
202
-	{
203
-		$resql=$this->query("SELECT @@VERSION");
204
-		if ($resql)
205
-		{
159
+        return @mssql_select_db($database, $this->db);
160
+    }
161
+
162
+    /**
163
+     *	Connexion to server
164
+     *
165
+     *	@param	    string	$host		database server host
166
+     *	@param	    string	$login		login
167
+     *	@param	    string	$passwd		password
168
+     *	@param		string	$name		name of database (not used for mysql, used for pgsql)
169
+     *	@param		int		$port		Port of database server
170
+     *	@return		false|resource|true	Database access handler
171
+     *	@see		close
172
+     */
173
+    function connect($host, $login, $passwd, $name, $port=0)
174
+    {
175
+        dol_syslog(get_class($this)."::connect host=$host, port=$port, login=$login, passwd=--hidden--, name=$name");
176
+        $newhost=$host;
177
+        if ($port) $newhost.=':'.$port;
178
+        $this->db  = @mssql_connect($newhost, $login, $passwd);
179
+        //force les enregistrement en latin1 si la base est en utf8 par defaut
180
+        // Supprime car plante sur mon PHP-Mysql. De plus, la base est forcement en latin1 avec
181
+        // les nouvelles version de Dolibarr car force par l'install Dolibarr.
182
+        //$this->query('SET NAMES '.$this->forcecharset);
183
+        //print "Resultat fonction connect: ".$this->db;
184
+        $set_options=array('SET ANSI_PADDING ON;',
185
+            "SET ANSI_NULLS ON;",
186
+            "SET ANSI_WARNINGS ON;",
187
+            "SET ARITHABORT ON;",
188
+            "SET CONCAT_NULL_YIELDS_NULL ON;",
189
+            "SET QUOTED_IDENTIFIER ON;"
190
+        );
191
+        mssql_query(implode(' ',$set_options),$this->db);
192
+
193
+        return $this->db;
194
+    }
195
+
196
+    /**
197
+     *	Return version of database server
198
+     *
199
+     *	@return	        string      Version string
200
+     */
201
+    function getVersion()
202
+    {
203
+        $resql=$this->query("SELECT @@VERSION");
204
+        if ($resql)
205
+        {
206 206
             $version=$this->fetch_array($resql);
207 207
             return $version['computed'];
208
-		}
209
-		else return '';
210
-	}
211
-
212
-	/**
213
-	 *	Return version of database client driver
214
-	 *
215
-	 *	@return	        string      Version string
216
-	 */
217
-	function getDriverInfo()
218
-	{
219
-		return 'php mssql driver';
220
-	}
208
+        }
209
+        else return '';
210
+    }
211
+
212
+    /**
213
+     *	Return version of database client driver
214
+     *
215
+     *	@return	        string      Version string
216
+     */
217
+    function getDriverInfo()
218
+    {
219
+        return 'php mssql driver';
220
+    }
221 221
 
222 222
     /**
223 223
      *  Close database connexion
@@ -229,100 +229,100 @@  discard block
 block discarded – undo
229 229
     {
230 230
         if ($this->db)
231 231
         {
232
-          if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
233
-          $this->connected=false;
234
-          return mssql_close($this->db);
232
+            if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
233
+            $this->connected=false;
234
+            return mssql_close($this->db);
235 235
         }
236 236
         return false;
237 237
     }
238 238
 
239 239
 
240
-	/**
241
-	 * Start transaction
242
-	 *
243
-	 * @return	    bool         true if transaction successfuly opened or already opened, false if error
244
-	 */
245
-	function begin()
246
-	{
247
-
248
-	    $res=mssql_query('select @@TRANCOUNT');
249
-	    $this->transaction_opened=mssql_result($res, 0, 0);
250
-
251
-	    if ($this->transaction_opened == 0)
252
-		{
253
-		    //return 1; //There is a mess with auto_commit and 'SET IMPLICIT_TRANSACTIONS ON' generate also a mess
254
-			$ret=mssql_query("SET IMPLICIT_TRANSACTIONS OFF;BEGIN TRANSACTION;",$this->db);
255
-			if ($ret)
256
-			{
257
-				dol_syslog("BEGIN Transaction",LOG_DEBUG);
258
-			}
259
-			return $ret;
260
-		}
261
-		else
262
-		{
263
-			return true;
264
-		}
265
-	}
266
-
267
-	/**
240
+    /**
241
+     * Start transaction
242
+     *
243
+     * @return	    bool         true if transaction successfuly opened or already opened, false if error
244
+     */
245
+    function begin()
246
+    {
247
+
248
+        $res=mssql_query('select @@TRANCOUNT');
249
+        $this->transaction_opened=mssql_result($res, 0, 0);
250
+
251
+        if ($this->transaction_opened == 0)
252
+        {
253
+            //return 1; //There is a mess with auto_commit and 'SET IMPLICIT_TRANSACTIONS ON' generate also a mess
254
+            $ret=mssql_query("SET IMPLICIT_TRANSACTIONS OFF;BEGIN TRANSACTION;",$this->db);
255
+            if ($ret)
256
+            {
257
+                dol_syslog("BEGIN Transaction",LOG_DEBUG);
258
+            }
259
+            return $ret;
260
+        }
261
+        else
262
+        {
263
+            return true;
264
+        }
265
+    }
266
+
267
+    /**
268 268
      * Validate a database transaction
269 269
      *
270 270
      * @param	string	$log        Add more log to default log line
271 271
      * @return  bool         		true if validation is OK or transaction level no started, false if ERROR
272
-	 */
273
-	function commit($log='')
274
-	{
275
-	    $res=mssql_query('select @@TRANCOUNT');
276
-	    $this->transaction_opened=mssql_result($res, 0, 0);
277
-
278
-		if ($this->transaction_opened == 1)
279
-		{
280
-		    //return 1; //There is a mess with auto_commit and 'SET IMPLICIT_TRANSACTION ON' generate also a mess
281
-			$ret=mssql_query("COMMIT TRANSACTION",$this->db);
282
-			if ($ret)
283
-			{
284
-				dol_syslog("COMMIT Transaction",LOG_DEBUG);
285
-				return true;
286
-			}
287
-			else
288
-			{
289
-				return false;
290
-			}
291
-		}
292
-		elseif ($this->transaction_opened > 1)
293
-		{
294
-			return true;
295
-		}
296
-		trigger_error("Commit requested but no transaction remain");
297
-		return false;
298
-	}
299
-
300
-	/**
301
-	 * Annulation d'une transaction et retour aux anciennes valeurs
302
-	 *
303
-	 * @param	string	$log	Add more log to default log line
304
-	 * @return	bool             true si annulation ok ou transaction non ouverte, false en cas d'erreur
305
-	 */
306
-	function rollback($log='')
307
-	{
308
-	    $res=mssql_query('select @@TRANCOUNT');
309
-	    $this->transaction_opened=mssql_result($res, 0, 0);
310
-
311
-		if ($this->transaction_opened == 1)
312
-		{
313
-			$ret=mssql_query("ROLLBACK TRANSACTION",$this->db);
314
-			dol_syslog("ROLLBACK Transaction".($log?' '.$log:''),LOG_DEBUG);
315
-			return $ret;
316
-		}
317
-		elseif ($this->transaction_opened > 1)
318
-		{
319
-			return true;
320
-		}
321
-		trigger_error("Rollback requested but no transaction remain");
322
-		return false;
323
-	}
324
-
325
-	/**
272
+     */
273
+    function commit($log='')
274
+    {
275
+        $res=mssql_query('select @@TRANCOUNT');
276
+        $this->transaction_opened=mssql_result($res, 0, 0);
277
+
278
+        if ($this->transaction_opened == 1)
279
+        {
280
+            //return 1; //There is a mess with auto_commit and 'SET IMPLICIT_TRANSACTION ON' generate also a mess
281
+            $ret=mssql_query("COMMIT TRANSACTION",$this->db);
282
+            if ($ret)
283
+            {
284
+                dol_syslog("COMMIT Transaction",LOG_DEBUG);
285
+                return true;
286
+            }
287
+            else
288
+            {
289
+                return false;
290
+            }
291
+        }
292
+        elseif ($this->transaction_opened > 1)
293
+        {
294
+            return true;
295
+        }
296
+        trigger_error("Commit requested but no transaction remain");
297
+        return false;
298
+    }
299
+
300
+    /**
301
+     * Annulation d'une transaction et retour aux anciennes valeurs
302
+     *
303
+     * @param	string	$log	Add more log to default log line
304
+     * @return	bool             true si annulation ok ou transaction non ouverte, false en cas d'erreur
305
+     */
306
+    function rollback($log='')
307
+    {
308
+        $res=mssql_query('select @@TRANCOUNT');
309
+        $this->transaction_opened=mssql_result($res, 0, 0);
310
+
311
+        if ($this->transaction_opened == 1)
312
+        {
313
+            $ret=mssql_query("ROLLBACK TRANSACTION",$this->db);
314
+            dol_syslog("ROLLBACK Transaction".($log?' '.$log:''),LOG_DEBUG);
315
+            return $ret;
316
+        }
317
+        elseif ($this->transaction_opened > 1)
318
+        {
319
+            return true;
320
+        }
321
+        trigger_error("Rollback requested but no transaction remain");
322
+        return false;
323
+    }
324
+
325
+    /**
326 326
      *  Execute a SQL request and return the resultset
327 327
      *
328 328
      *  @param	string	$query          SQL query string
@@ -330,34 +330,34 @@  discard block
 block discarded – undo
330 330
      *                   		 		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.
331 331
      *  @param  string	$type           Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
332 332
      *  @return false|resource|true		Resultset of answer
333
-	 */
334
-	function query($query,$usesavepoint=0,$type='auto')
335
-	{
336
-		$query = trim($query);
333
+     */
334
+    function query($query,$usesavepoint=0,$type='auto')
335
+    {
336
+        $query = trim($query);
337 337
 
338 338
         Debug::addMessage('SQL', 'MSSQL: ' . $query);
339 339
 
340 340
         if (preg_match('/^--/',$query)) return true;
341 341
 
342
-		// Conversion syntaxe MySql vers MSDE.
343
-		$query = str_ireplace("now()", "getdate()", $query);
344
-		// Erreur SQL: cannot update timestamp field
345
-		$query = str_ireplace(", tms = tms", "", $query);
346
-
347
-		$query=preg_replace("/([. ,\t(])(percent|file|public)([. ,=\t)])/","$1[$2]$3",$query);
348
-
349
-		if ($type=="auto" || $type='dml')
350
-		{
351
-    		$query=preg_replace('/AUTO_INCREMENT/i','IDENTITY',$query);
352
-    		$query=preg_replace('/double/i','float',$query);
353
-    		$query=preg_replace('/float\((.*)\)/','numeric($1)',$query);
354
-    		$query=preg_replace('/([ \t])unsigned|IF NOT EXISTS[ \t]/i','$1',$query);
355
-    		$query=preg_replace('/([ \t])(MEDIUM|TINY|LONG){0,1}TEXT([ \t,])/i',"$1VARCHAR(MAX)$3",$query);
356
-
357
-    		$matches=array();
358
-    		$original_query='';
359
-    		if (preg_match('/ALTER TABLE\h+(\w+?)\h+ADD\h+(?:(UNIQUE)|INDEX)\h+(?:INDEX)?\h*(\w+?)\h*\((.+)\)/is', $query,$matches))
360
-    		{
342
+        // Conversion syntaxe MySql vers MSDE.
343
+        $query = str_ireplace("now()", "getdate()", $query);
344
+        // Erreur SQL: cannot update timestamp field
345
+        $query = str_ireplace(", tms = tms", "", $query);
346
+
347
+        $query=preg_replace("/([. ,\t(])(percent|file|public)([. ,=\t)])/","$1[$2]$3",$query);
348
+
349
+        if ($type=="auto" || $type='dml')
350
+        {
351
+            $query=preg_replace('/AUTO_INCREMENT/i','IDENTITY',$query);
352
+            $query=preg_replace('/double/i','float',$query);
353
+            $query=preg_replace('/float\((.*)\)/','numeric($1)',$query);
354
+            $query=preg_replace('/([ \t])unsigned|IF NOT EXISTS[ \t]/i','$1',$query);
355
+            $query=preg_replace('/([ \t])(MEDIUM|TINY|LONG){0,1}TEXT([ \t,])/i',"$1VARCHAR(MAX)$3",$query);
356
+
357
+            $matches=array();
358
+            $original_query='';
359
+            if (preg_match('/ALTER TABLE\h+(\w+?)\h+ADD\h+(?:(UNIQUE)|INDEX)\h+(?:INDEX)?\h*(\w+?)\h*\((.+)\)/is', $query,$matches))
360
+            {
361 361
                 $original_query=$query;
362 362
                 $query="CREATE ".trim($matches[2])." INDEX [".trim($matches[3])."] ON [".trim($matches[1])."] (".trim($matches[4]).")";
363 363
                 if ($matches[2]) {
@@ -374,658 +374,658 @@  discard block
 block discarded – undo
374 374
                     if (! empty($query_comp))
375 375
                         $query.=" WHERE ".implode(" AND ",$query_comp);
376 376
                 }
377
-    		}
378
-    		else
379
-    		{
380
-    		    if (preg_match('/ALTER TABLE\h+(\w+?)\h+ADD\h+PRIMARY\h+KEY\h+(\w+?)\h*\((.+)\)/is', $query, $matches))
381
-    		    {
377
+            }
378
+            else
379
+            {
380
+                if (preg_match('/ALTER TABLE\h+(\w+?)\h+ADD\h+PRIMARY\h+KEY\h+(\w+?)\h*\((.+)\)/is', $query, $matches))
381
+                {
382 382
                     $original_query=$query;
383 383
                     $query="ALTER TABLE [".$matches[1]."] ADD CONSTRAINT [".$matches[2]."] PRIMARY KEY CLUSTERED (".$matches[3].")";
384
-    		    }
385
-    		}
386
-		}
387
-
388
-		if ($type=="auto" || $type='ddl')
389
-		{
390
-    		$itemfound = stripos($query, " limit ");
391
-    		if ($itemfound !== false) {
392
-    			// Extraire le nombre limite
393
-    			$number = stristr($query, " limit ");
394
-    			$number = substr($number, 7);
395
-    			// Inserer l'instruction TOP et le nombre limite
396
-    			$query = str_ireplace("select ", "select top ".$number." ", $query);
397
-    			// Supprimer l'instruction MySql
398
-    			$query = str_ireplace(" limit ".$number, "", $query);
399
-    		}
400
-
401
-    		$itemfound = stripos($query, " week(");
402
-    		if ($itemfound !== false) {
403
-    			// Recreer une requete sans instruction Mysql
404
-    			$positionMySql = stripos($query, " week(");
405
-    			$newquery = substr($query, 0, $positionMySql);
406
-
407
-    			// Recuperer la date passee en parametre
408
-    			$extractvalue = stristr($query, " week(");
409
-    			$extractvalue = substr($extractvalue, 6);
410
-    			$positionMySql = stripos($extractvalue, ")");
411
-    			// Conserver la fin de la requete
412
-    			$endofquery = substr($extractvalue, $positionMySql);
413
-    			$extractvalue = substr($extractvalue, 0, $positionMySql);
414
-
415
-    			// Remplacer l'instruction MySql en Sql Server
416
-    			// Inserer la date en parametre et le reste de la requete
417
-    			$query = $newquery." DATEPART(week, ".$extractvalue.$endofquery;
418
-    		}
419
-    	   if (preg_match('/^insert\h+(?:INTO)?\h*(\w+?)\h*\(.*\b(?:row)?id\b.*\)\h+VALUES/i',$query,$matches))
420
-    	   {
421
-    	       //var_dump($query);
422
-    	       //var_dump($matches);
423
-    	       //if (stripos($query,'llx_c_departements') !== false) var_dump($query);
424
-    	       $sql='SET IDENTITY_INSERT ['.trim($matches[1]).'] ON;';
425
-    	       @mssql_query($sql, $this->db);
426
-    	       $post_query='SET IDENTITY_INSERT ['.trim($matches[1]).'] OFF;';
427
-    	   }
428
-		}
429
-		//print "<!--".$query."-->";
430
-
431
-		if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
432
-
433
-		if (! $this->database_name)
434
-		{
435
-			// Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE)
436
-			$ret = mssql_query($query, $this->db);
437
-		}
438
-		else
439
-		{
440
-			$ret = mssql_query($query, $this->db);
441
-		}
442
-
443
-		if (!empty($post_query))
444
-		{
445
-		    @mssql_query($post_query, $this->db);
446
-		}
447
-
448
-		if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query))
449
-		{
450
-			// Si requete utilisateur, on la sauvegarde ainsi que son resultset
451
-			if (! $ret)
452
-			{
453
-				$result = mssql_query("SELECT @@ERROR as code", $this->db);
454
-				$row = mssql_fetch_array($result);
384
+                }
385
+            }
386
+        }
387
+
388
+        if ($type=="auto" || $type='ddl')
389
+        {
390
+            $itemfound = stripos($query, " limit ");
391
+            if ($itemfound !== false) {
392
+                // Extraire le nombre limite
393
+                $number = stristr($query, " limit ");
394
+                $number = substr($number, 7);
395
+                // Inserer l'instruction TOP et le nombre limite
396
+                $query = str_ireplace("select ", "select top ".$number." ", $query);
397
+                // Supprimer l'instruction MySql
398
+                $query = str_ireplace(" limit ".$number, "", $query);
399
+            }
400
+
401
+            $itemfound = stripos($query, " week(");
402
+            if ($itemfound !== false) {
403
+                // Recreer une requete sans instruction Mysql
404
+                $positionMySql = stripos($query, " week(");
405
+                $newquery = substr($query, 0, $positionMySql);
406
+
407
+                // Recuperer la date passee en parametre
408
+                $extractvalue = stristr($query, " week(");
409
+                $extractvalue = substr($extractvalue, 6);
410
+                $positionMySql = stripos($extractvalue, ")");
411
+                // Conserver la fin de la requete
412
+                $endofquery = substr($extractvalue, $positionMySql);
413
+                $extractvalue = substr($extractvalue, 0, $positionMySql);
414
+
415
+                // Remplacer l'instruction MySql en Sql Server
416
+                // Inserer la date en parametre et le reste de la requete
417
+                $query = $newquery." DATEPART(week, ".$extractvalue.$endofquery;
418
+            }
419
+            if (preg_match('/^insert\h+(?:INTO)?\h*(\w+?)\h*\(.*\b(?:row)?id\b.*\)\h+VALUES/i',$query,$matches))
420
+            {
421
+                //var_dump($query);
422
+                //var_dump($matches);
423
+                //if (stripos($query,'llx_c_departements') !== false) var_dump($query);
424
+                $sql='SET IDENTITY_INSERT ['.trim($matches[1]).'] ON;';
425
+                @mssql_query($sql, $this->db);
426
+                $post_query='SET IDENTITY_INSERT ['.trim($matches[1]).'] OFF;';
427
+            }
428
+        }
429
+        //print "<!--".$query."-->";
430
+
431
+        if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
432
+
433
+        if (! $this->database_name)
434
+        {
435
+            // Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE)
436
+            $ret = mssql_query($query, $this->db);
437
+        }
438
+        else
439
+        {
440
+            $ret = mssql_query($query, $this->db);
441
+        }
442
+
443
+        if (!empty($post_query))
444
+        {
445
+            @mssql_query($post_query, $this->db);
446
+        }
447
+
448
+        if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query))
449
+        {
450
+            // Si requete utilisateur, on la sauvegarde ainsi que son resultset
451
+            if (! $ret)
452
+            {
453
+                $result = mssql_query("SELECT @@ERROR as code", $this->db);
454
+                $row = mssql_fetch_array($result);
455 455
 
456 456
                 $this->lastqueryerror = $query;
457
-				$this->lasterror = $this->error();
458
-				$this->lasterrno = $row["code"];
457
+                $this->lasterror = $this->error();
458
+                $this->lasterrno = $row["code"];
459 459
 
460
-				dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);
461
-				if ($original_query) dol_syslog(get_class($this)."::query SQL Original query: ".$original_query, LOG_ERR);
462
-				dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterror." (".$this->lasterrno.")", LOG_ERR);
463
-			}
464
-			$this->lastquery=$query;
465
-			$this->_results = $ret;
466
-		}
460
+                dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);
461
+                if ($original_query) dol_syslog(get_class($this)."::query SQL Original query: ".$original_query, LOG_ERR);
462
+                dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterror." (".$this->lasterrno.")", LOG_ERR);
463
+            }
464
+            $this->lastquery=$query;
465
+            $this->_results = $ret;
466
+        }
467 467
 
468
-		return $ret;
469
-	}
468
+        return $ret;
469
+    }
470 470
 
471 471
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
472
-	/**
473
-	 *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
474
-	 *
475
-	 *	@param	resource	$resultset  Curseur de la requete voulue
476
-	 *	@return	object|false			Object result line or false if KO or end of cursor
477
-	 */
478
-	function fetch_object($resultset)
479
-	{
472
+    /**
473
+     *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
474
+     *
475
+     *	@param	resource	$resultset  Curseur de la requete voulue
476
+     *	@return	object|false			Object result line or false if KO or end of cursor
477
+     */
478
+    function fetch_object($resultset)
479
+    {
480 480
         // phpcs:enable
481
-		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
482
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
483
-		return mssql_fetch_object($resultset);
484
-	}
481
+        // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
482
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
483
+        return mssql_fetch_object($resultset);
484
+    }
485 485
 
486 486
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
487
-	/**
487
+    /**
488 488
      *	Return datas as an array
489 489
      *
490 490
      *	@param	resource	$resultset  Resultset of request
491 491
      *	@return	array|false				Array or false if KO or end of cursor
492
-	 */
493
-	function fetch_array($resultset)
494
-	{
492
+     */
493
+    function fetch_array($resultset)
494
+    {
495 495
         // phpcs:enable
496
-		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
497
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
498
-		return mssql_fetch_array($resultset);
499
-	}
496
+        // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
497
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
498
+        return mssql_fetch_array($resultset);
499
+    }
500 500
 
501 501
 
502 502
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
503
-	/**
503
+    /**
504 504
      *	Return datas as an array
505 505
      *
506 506
      *	@param	resource	$resultset  Resultset of request
507 507
      *	@return	array|false				Array or false if KO or end of cursor
508
-	 */
509
-	function fetch_row($resultset)
510
-	{
508
+     */
509
+    function fetch_row($resultset)
510
+    {
511 511
         // phpcs:enable
512
-		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
513
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
514
-		return @mssql_fetch_row($resultset);
515
-	}
512
+        // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
513
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
514
+        return @mssql_fetch_row($resultset);
515
+    }
516 516
 
517 517
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
518
-	/**
518
+    /**
519 519
      *	Return number of lines for result of a SELECT
520 520
      *
521 521
      *	@param	resource	$resultset  Resulset of requests
522 522
      *	@return int		    			Nb of lines
523 523
      *	@see    affected_rows
524
-	 */
525
-	function num_rows($resultset)
526
-	{
524
+     */
525
+    function num_rows($resultset)
526
+    {
527 527
         // phpcs:enable
528
-		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
529
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
530
-		return mssql_num_rows($resultset);
531
-	}
528
+        // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
529
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
530
+        return mssql_num_rows($resultset);
531
+    }
532 532
 
533 533
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
534
-	/**
535
-	 *	Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
536
-	 *
537
-	 *	@param	resource	$resultset   Curseur de la requete voulue
538
-	 *	@return int		    Nombre de lignes
539
-	 *	@see    num_rows
540
-	 */
541
-	function affected_rows($resultset)
542
-	{
534
+    /**
535
+     *	Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
536
+     *
537
+     *	@param	resource	$resultset   Curseur de la requete voulue
538
+     *	@return int		    Nombre de lignes
539
+     *	@see    num_rows
540
+     */
541
+    function affected_rows($resultset)
542
+    {
543 543
         // phpcs:enable
544
-		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
545
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
546
-		// mssql necessite un link de base pour cette fonction contrairement
547
-		// a pqsql qui prend un resultset
548
-		$rsRows = mssql_query("select @@rowcount as rows", $this->db);
549
-		return mssql_result($rsRows, 0, "rows");
550
-		//return mssql_affected_rows($this->db);
551
-	}
552
-
553
-
554
-	/**
555
-	 *	Free last resultset used.
556
-	 *
557
-	 *	@param  resource	$resultset   Curseur de la requete voulue
558
-	 *	@return	bool
559
-	 */
560
-	function free($resultset=null)
561
-	{
562
-		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
563
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
564
-		// Si resultset en est un, on libere la memoire
565
-		if (is_resource($resultset)) mssql_free_result($resultset);
566
-	}
567
-
568
-	/**
569
-	 *	Escape a string to insert data
570
-	 *
571
-	 *  @param	string	$stringtoencode		String to escape
572
-	 *  @return	string						String escaped
573
-	 */
574
-	function escape($stringtoencode)
575
-	{
576
-		return addslashes($stringtoencode);
577
-	}
578
-
579
-
580
-	/**
581
-	 *   Convert (by PHP) a GM Timestamp date into a PHP server TZ to insert into a date field.
582
-	 *   Function to use to build INSERT, UPDATE or WHERE predica
583
-	 *
584
-	 *   @param	    string	$param      Date TMS to convert
585
-	 *   @return	string      		Date in a string YYYY-MM-DD HH:MM:SS
586
-	 */
587
-	function idate($param)
588
-	{
589
-		return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
590
-	}
591
-
592
-	/**
544
+        // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
545
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
546
+        // mssql necessite un link de base pour cette fonction contrairement
547
+        // a pqsql qui prend un resultset
548
+        $rsRows = mssql_query("select @@rowcount as rows", $this->db);
549
+        return mssql_result($rsRows, 0, "rows");
550
+        //return mssql_affected_rows($this->db);
551
+    }
552
+
553
+
554
+    /**
555
+     *	Free last resultset used.
556
+     *
557
+     *	@param  resource	$resultset   Curseur de la requete voulue
558
+     *	@return	bool
559
+     */
560
+    function free($resultset=null)
561
+    {
562
+        // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
563
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
564
+        // Si resultset en est un, on libere la memoire
565
+        if (is_resource($resultset)) mssql_free_result($resultset);
566
+    }
567
+
568
+    /**
569
+     *	Escape a string to insert data
570
+     *
571
+     *  @param	string	$stringtoencode		String to escape
572
+     *  @return	string						String escaped
573
+     */
574
+    function escape($stringtoencode)
575
+    {
576
+        return addslashes($stringtoencode);
577
+    }
578
+
579
+
580
+    /**
581
+     *   Convert (by PHP) a GM Timestamp date into a PHP server TZ to insert into a date field.
582
+     *   Function to use to build INSERT, UPDATE or WHERE predica
583
+     *
584
+     *   @param	    string	$param      Date TMS to convert
585
+     *   @return	string      		Date in a string YYYY-MM-DD HH:MM:SS
586
+     */
587
+    function idate($param)
588
+    {
589
+        return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
590
+    }
591
+
592
+    /**
593 593
      *	Return generic error code of last operation.
594 594
      *
595 595
      *	@return	string		Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
596
-	 */
597
-	function errno()
598
-	{
599
-		if (! $this->connected)
600
-		{
601
-			// Si il y a eu echec de connexion, $this->db n'est pas valide.
602
-			return 'DB_ERROR_FAILED_TO_CONNECT';
603
-		}
604
-		else
605
-		{
606
-			// Constants to convert a MSSql error code to a generic Dolibarr error code
607
-			$errorcode_map = array(
608
-			1004 => 'DB_ERROR_CANNOT_CREATE',
609
-			1005 => 'DB_ERROR_CANNOT_CREATE',
610
-			1006 => 'DB_ERROR_CANNOT_CREATE',
611
-			1007 => 'DB_ERROR_ALREADY_EXISTS',
612
-			1008 => 'DB_ERROR_CANNOT_DROP',
613
-			1025 => 'DB_ERROR_NO_FOREIGN_KEY_TO_DROP',
614
-			1046 => 'DB_ERROR_NODBSELECTED',
615
-			1048 => 'DB_ERROR_CONSTRAINT',
616
-			2714 => 'DB_ERROR_TABLE_ALREADY_EXISTS',
617
-			1051 => 'DB_ERROR_NOSUCHTABLE',
618
-			1054 => 'DB_ERROR_NOSUCHFIELD',
619
-			1060 => 'DB_ERROR_COLUMN_ALREADY_EXISTS',
620
-			1061 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
621
-			2627 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
622
-			102  => 'DB_ERROR_SYNTAX',
623
-			8120 => 'DB_ERROR_GROUP_BY_SYNTAX',
624
-			1068 => 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS',
625
-			1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
626
-			1091 => 'DB_ERROR_NOSUCHFIELD',
627
-			1100 => 'DB_ERROR_NOT_LOCKED',
628
-			1136 => 'DB_ERROR_VALUE_COUNT_ON_ROW',
629
-			1146 => 'DB_ERROR_NOSUCHTABLE',
630
-			1216 => 'DB_ERROR_NO_PARENT',
631
-			1217 => 'DB_ERROR_CHILD_EXISTS',
632
-			1451 => 'DB_ERROR_CHILD_EXISTS',
633
-			1913 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS'
634
-			);
635
-
636
-			if (isset($errorcode_map[$this->lasterrno]))
637
-			{
638
-				return $errorcode_map[$this->lasterrno];
639
-			}
640
-			$errno=$this->lasterrno;
641
-			return ($errno?'DB_ERROR_'.$errno:'0');
642
-		}
643
-	}
644
-
645
-	/**
646
-	 *	Return description of last error
647
-	 *
648
-	 *	@return	string		Error text
649
-	 */
650
-	function error()
651
-	{
652
-		if (! $this->connected) {
653
-			// Si il y a eu echec de connexion, $this->db n'est pas valide pour mssql_get_last_message.
654
-			return 'Not connected. Check setup parameters in conf/conf.php file and your mssql client and server versions';
655
-		}
656
-		else {
657
-			return mssql_get_last_message();
658
-		}
659
-	}
596
+     */
597
+    function errno()
598
+    {
599
+        if (! $this->connected)
600
+        {
601
+            // Si il y a eu echec de connexion, $this->db n'est pas valide.
602
+            return 'DB_ERROR_FAILED_TO_CONNECT';
603
+        }
604
+        else
605
+        {
606
+            // Constants to convert a MSSql error code to a generic Dolibarr error code
607
+            $errorcode_map = array(
608
+            1004 => 'DB_ERROR_CANNOT_CREATE',
609
+            1005 => 'DB_ERROR_CANNOT_CREATE',
610
+            1006 => 'DB_ERROR_CANNOT_CREATE',
611
+            1007 => 'DB_ERROR_ALREADY_EXISTS',
612
+            1008 => 'DB_ERROR_CANNOT_DROP',
613
+            1025 => 'DB_ERROR_NO_FOREIGN_KEY_TO_DROP',
614
+            1046 => 'DB_ERROR_NODBSELECTED',
615
+            1048 => 'DB_ERROR_CONSTRAINT',
616
+            2714 => 'DB_ERROR_TABLE_ALREADY_EXISTS',
617
+            1051 => 'DB_ERROR_NOSUCHTABLE',
618
+            1054 => 'DB_ERROR_NOSUCHFIELD',
619
+            1060 => 'DB_ERROR_COLUMN_ALREADY_EXISTS',
620
+            1061 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
621
+            2627 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
622
+            102  => 'DB_ERROR_SYNTAX',
623
+            8120 => 'DB_ERROR_GROUP_BY_SYNTAX',
624
+            1068 => 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS',
625
+            1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
626
+            1091 => 'DB_ERROR_NOSUCHFIELD',
627
+            1100 => 'DB_ERROR_NOT_LOCKED',
628
+            1136 => 'DB_ERROR_VALUE_COUNT_ON_ROW',
629
+            1146 => 'DB_ERROR_NOSUCHTABLE',
630
+            1216 => 'DB_ERROR_NO_PARENT',
631
+            1217 => 'DB_ERROR_CHILD_EXISTS',
632
+            1451 => 'DB_ERROR_CHILD_EXISTS',
633
+            1913 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS'
634
+            );
635
+
636
+            if (isset($errorcode_map[$this->lasterrno]))
637
+            {
638
+                return $errorcode_map[$this->lasterrno];
639
+            }
640
+            $errno=$this->lasterrno;
641
+            return ($errno?'DB_ERROR_'.$errno:'0');
642
+        }
643
+    }
644
+
645
+    /**
646
+     *	Return description of last error
647
+     *
648
+     *	@return	string		Error text
649
+     */
650
+    function error()
651
+    {
652
+        if (! $this->connected) {
653
+            // Si il y a eu echec de connexion, $this->db n'est pas valide pour mssql_get_last_message.
654
+            return 'Not connected. Check setup parameters in conf/conf.php file and your mssql client and server versions';
655
+        }
656
+        else {
657
+            return mssql_get_last_message();
658
+        }
659
+    }
660 660
 
661 661
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
662
-	/**
663
-	 * Get last ID after an insert INSERT
664
-	 *
665
-	 * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
666
-	 * @param	string	$fieldid	Field name
667
-	 * @return  int     			Id of row or -1 on error
668
-	 */
669
-	function last_insert_id($tab,$fieldid='rowid')
670
-	{
662
+    /**
663
+     * Get last ID after an insert INSERT
664
+     *
665
+     * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
666
+     * @param	string	$fieldid	Field name
667
+     * @return  int     			Id of row or -1 on error
668
+     */
669
+    function last_insert_id($tab,$fieldid='rowid')
670
+    {
671 671
         // phpcs:enable
672
-		$res = $this->query("SELECT @@IDENTITY as id");
673
-		if ($res && $data = $this->fetch_array($res))
674
-		{
675
-			return $data["id"];
676
-		}
677
-		else
678
-		{
679
-			return -1;
680
-		}
681
-	}
682
-
683
-	/**
672
+        $res = $this->query("SELECT @@IDENTITY as id");
673
+        if ($res && $data = $this->fetch_array($res))
674
+        {
675
+            return $data["id"];
676
+        }
677
+        else
678
+        {
679
+            return -1;
680
+        }
681
+    }
682
+
683
+    /**
684 684
      *  Encrypt sensitive data in database
685 685
      *  Warning: This function includes the escape, so it must use direct value
686 686
      *
687 687
      *  @param  string  $fieldorvalue   Field name or value to encrypt
688 688
      *  @param	int		$withQuotes     Return string with quotes
689 689
      *  @return string          		XXX(field) or XXX('value') or field or 'value'
690
-	 */
691
-	function encrypt($fieldorvalue, $withQuotes=0)
692
-	{
693
-		global $conf;
690
+     */
691
+    function encrypt($fieldorvalue, $withQuotes=0)
692
+    {
693
+        global $conf;
694 694
 
695
-		// Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
696
-		$cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
695
+        // Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
696
+        $cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
697 697
 
698
-		//Encryption key
699
-		$cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
698
+        //Encryption key
699
+        $cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
700 700
 
701
-		$return = $fieldorvalue;
702
-		return ($withQuotes?"'":"").$this->escape($return).($withQuotes?"'":"");
703
-	}
701
+        $return = $fieldorvalue;
702
+        return ($withQuotes?"'":"").$this->escape($return).($withQuotes?"'":"");
703
+    }
704 704
 
705
-	/**
705
+    /**
706 706
      *	Decrypt sensitive data in database
707 707
      *
708 708
      *	@param	string	$value			Value to decrypt
709 709
      * 	@return	string					Decrypted value if used
710
-	 */
711
-	function decrypt($value)
712
-	{
713
-		global $conf;
710
+     */
711
+    function decrypt($value)
712
+    {
713
+        global $conf;
714 714
 
715
-		// Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
716
-		$cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
715
+        // Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
716
+        $cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
717 717
 
718
-		//Encryption key
719
-		$cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
718
+        //Encryption key
719
+        $cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
720 720
 
721
-		$return = $value;
722
-		return $return;
723
-	}
721
+        $return = $value;
722
+        return $return;
723
+    }
724 724
 
725 725
 
726 726
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
727
-	/**
728
-	 * Return connexion ID
729
-	 *
730
-	 * @return	        string      Id connexion
731
-	 */
732
-	function DDLGetConnectId()
733
-	{
727
+    /**
728
+     * Return connexion ID
729
+     *
730
+     * @return	        string      Id connexion
731
+     */
732
+    function DDLGetConnectId()
733
+    {
734 734
         // phpcs:enable
735
-		$resql=$this->query('SELECT CONNECTION_ID()');
736
-		if ($resql)
737
-		{
735
+        $resql=$this->query('SELECT CONNECTION_ID()');
736
+        if ($resql)
737
+        {
738 738
             $row=$this->fetch_row($resql);
739 739
             return $row[0];
740
-		}
741
-		else return '?';
742
-	}
740
+        }
741
+        else return '?';
742
+    }
743 743
 
744 744
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
745
-	/**
746
-	 *	Create a new database
747
-	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
748
-	 *	We force to create database with charset this->forcecharset and collate this->forcecollate
749
-	 *
750
-	 *	@param	string	$database		Database name to create
751
-	 * 	@param	string	$charset		Charset used to store data
752
-	 * 	@param	string	$collation		Charset used to sort data
753
-	 * 	@param	string	$owner			Username of database owner
754
-	 * 	@return	false|resource|true		resource defined if OK, false if KO
755
-	 */
756
-	function DDLCreateDb($database,$charset='',$collation='',$owner='')
757
-	{
745
+    /**
746
+     *	Create a new database
747
+     *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
748
+     *	We force to create database with charset this->forcecharset and collate this->forcecollate
749
+     *
750
+     *	@param	string	$database		Database name to create
751
+     * 	@param	string	$charset		Charset used to store data
752
+     * 	@param	string	$collation		Charset used to sort data
753
+     * 	@param	string	$owner			Username of database owner
754
+     * 	@return	false|resource|true		resource defined if OK, false if KO
755
+     */
756
+    function DDLCreateDb($database,$charset='',$collation='',$owner='')
757
+    {
758 758
         // phpcs:enable
759 759
         /*if (empty($charset))   $charset=$this->forcecharset;
760 760
         if (empty($collation)) $collation=$this->forcecollate;
761 761
         */
762 762
 
763
-		$sql = 'CREATE DATABASE '.$this->EscapeFieldName($database);
763
+        $sql = 'CREATE DATABASE '.$this->EscapeFieldName($database);
764 764
         //TODO: Check if we need to force a charset
765
-		//$sql.= ' DEFAULT CHARACTER SET '.$charset.' DEFAULT COLLATE '.$collation;
766
-		$ret=$this->query($sql);
765
+        //$sql.= ' DEFAULT CHARACTER SET '.$charset.' DEFAULT COLLATE '.$collation;
766
+        $ret=$this->query($sql);
767 767
 
768
-		$this->select_db($database);
769
-		$sql="CREATE USER [$owner] FOR LOGIN [$owner]";
770
-		mssql_query($sql,$this->db);
771
-		$sql="ALTER ROLE [db_owner] ADD MEMBER [$owner]";
772
-		mssql_query($sql,$this->db);
768
+        $this->select_db($database);
769
+        $sql="CREATE USER [$owner] FOR LOGIN [$owner]";
770
+        mssql_query($sql,$this->db);
771
+        $sql="ALTER ROLE [db_owner] ADD MEMBER [$owner]";
772
+        mssql_query($sql,$this->db);
773 773
 
774
-		$sql="ALTER DATABASE [$database] SET ANSI_NULL_DEFAULT ON;";
775
-	    @mssql_query($sql,$this->db);
776
-	    $sql="ALTER DATABASE [$database] SET ANSI_NULL ON;";
777
-	    @mssql_query($sql,$this->db);
774
+        $sql="ALTER DATABASE [$database] SET ANSI_NULL_DEFAULT ON;";
775
+        @mssql_query($sql,$this->db);
776
+        $sql="ALTER DATABASE [$database] SET ANSI_NULL ON;";
777
+        @mssql_query($sql,$this->db);
778 778
 
779
-	    return $ret;
780
-	}
779
+        return $ret;
780
+    }
781 781
 
782 782
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
783
-	/**
784
-	 *  List tables into a database
785
-	 *
786
-	 *  @param	string		$database	Name of database
787
-	 *  @param	string		$table		Nmae of table filter ('xxx%')
783
+    /**
784
+     *  List tables into a database
785
+     *
786
+     *  @param	string		$database	Name of database
787
+     *  @param	string		$table		Nmae of table filter ('xxx%')
788 788
      *  @return	array					List of tables in an array
789
-	 */
790
-	function DDLListTables($database,$table='')
791
-	{
789
+     */
790
+    function DDLListTables($database,$table='')
791
+    {
792 792
         // phpcs:enable
793
-		$this->_results = mssql_list_tables($database, $this->db);
794
-		return $this->_results;
795
-	}
793
+        $this->_results = mssql_list_tables($database, $this->db);
794
+        return $this->_results;
795
+    }
796 796
 
797 797
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
798
-	/**
799
-	 *	List information of columns into a table.
800
-	 *
801
-	 *	@param	string	$table		Name of table
802
-	 *	@return	array				Tableau des informations des champs de la table
803
-	 */
804
-	function DDLInfoTable($table)
805
-	{
798
+    /**
799
+     *	List information of columns into a table.
800
+     *
801
+     *	@param	string	$table		Name of table
802
+     *	@return	array				Tableau des informations des champs de la table
803
+     */
804
+    function DDLInfoTable($table)
805
+    {
806 806
         // phpcs:enable
807 807
 
808
-		// FIXME: Dummy method
809
-		// TODO: Implement
810
-		// May help: https://stackoverflow.com/questions/600446/sql-server-how-do-you-return-the-column-names-from-a-table
808
+        // FIXME: Dummy method
809
+        // TODO: Implement
810
+        // May help: https://stackoverflow.com/questions/600446/sql-server-how-do-you-return-the-column-names-from-a-table
811 811
 
812
-		$infotables=array();
813
-		return $infotables;
814
-	}
812
+        $infotables=array();
813
+        return $infotables;
814
+    }
815 815
 
816 816
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
817
-	/**
818
-	 *	Create a table into database
819
-	 *
820
-	 *	@param	    string	$table 			Nom de la table
821
-	 *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
822
-	 *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
823
-	 *	@param	    string	$type 			Type de la table
824
-	 *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
825
-	 *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
826
-	 *	@param	    array	$keys 			Tableau des champs cles noms => valeur
827
-	 *	@return	    int						<0 if KO, >=0 if OK
828
-	 */
829
-	function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
830
-	{
817
+    /**
818
+     *	Create a table into database
819
+     *
820
+     *	@param	    string	$table 			Nom de la table
821
+     *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
822
+     *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
823
+     *	@param	    string	$type 			Type de la table
824
+     *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
825
+     *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
826
+     *	@param	    array	$keys 			Tableau des champs cles noms => valeur
827
+     *	@return	    int						<0 if KO, >=0 if OK
828
+     */
829
+    function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
830
+    {
831 831
         // phpcs:enable
832
-		// FIXME: $fulltext_keys parameter is unused
833
-
834
-		// cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
835
-		// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
836
-		$sql = "create table ".$table."(";
837
-		$i=0;
838
-		foreach($fields as $field_name => $field_desc)
839
-		{
840
-			$sqlfields[$i] = $field_name." ";
841
-			$sqlfields[$i]  .= $field_desc['type'];
842
-			if( preg_match("/^[^\s]/i",$field_desc['value']))
843
-			$sqlfields[$i]  .= "(".$field_desc['value'].")";
844
-			else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
845
-			$sqlfields[$i]  .= " ".$field_desc['attribute'];
846
-			else if( preg_match("/^[^\s]/i",$field_desc['default']))
847
-			{
848
-				if(preg_match("/null/i",$field_desc['default']))
849
-				$sqlfields[$i]  .= " default ".$field_desc['default'];
850
-				else
851
-				$sqlfields[$i]  .= " default '".$field_desc['default']."'";
852
-			}
853
-			else if( preg_match("/^[^\s]/i",$field_desc['null']))
854
-			$sqlfields[$i]  .= " ".$field_desc['null'];
855
-
856
-			else if( preg_match("/^[^\s]/i",$field_desc['extra']))
857
-			$sqlfields[$i]  .= " ".$field_desc['extra'];
858
-			$i++;
859
-		}
860
-		if($primary_key != "")
861
-		$pk = "primary key(".$primary_key.")";
862
-
863
-		if(is_array($unique_keys))
864
-		{
865
-			$i = 0;
866
-			foreach($unique_keys as $key => $value)
867
-			{
868
-				$sqluq[$i] = "UNIQUE KEY '".$key."' ('".$value."')";
869
-				$i++;
870
-			}
871
-		}
872
-		if(is_array($keys))
873
-		{
874
-			$i = 0;
875
-			foreach($keys as $key => $value)
876
-			{
877
-				$sqlk[$i] = "KEY ".$key." (".$value.")";
878
-				$i++;
879
-			}
880
-		}
881
-		$sql .= implode(',',$sqlfields);
882
-		if($primary_key != "")
883
-		$sql .= ",".$pk;
884
-		if(is_array($unique_keys))
885
-		$sql .= ",".implode(',',$sqluq);
886
-		if(is_array($keys))
887
-		$sql .= ",".implode(',',$sqlk);
888
-		$sql .=") type=".$type;
889
-
890
-		dol_syslog($sql);
891
-		if (!$this->query($sql))
832
+        // FIXME: $fulltext_keys parameter is unused
833
+
834
+        // cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
835
+        // ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
836
+        $sql = "create table ".$table."(";
837
+        $i=0;
838
+        foreach($fields as $field_name => $field_desc)
839
+        {
840
+            $sqlfields[$i] = $field_name." ";
841
+            $sqlfields[$i]  .= $field_desc['type'];
842
+            if( preg_match("/^[^\s]/i",$field_desc['value']))
843
+            $sqlfields[$i]  .= "(".$field_desc['value'].")";
844
+            else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
845
+            $sqlfields[$i]  .= " ".$field_desc['attribute'];
846
+            else if( preg_match("/^[^\s]/i",$field_desc['default']))
847
+            {
848
+                if(preg_match("/null/i",$field_desc['default']))
849
+                $sqlfields[$i]  .= " default ".$field_desc['default'];
850
+                else
851
+                $sqlfields[$i]  .= " default '".$field_desc['default']."'";
852
+            }
853
+            else if( preg_match("/^[^\s]/i",$field_desc['null']))
854
+            $sqlfields[$i]  .= " ".$field_desc['null'];
855
+
856
+            else if( preg_match("/^[^\s]/i",$field_desc['extra']))
857
+            $sqlfields[$i]  .= " ".$field_desc['extra'];
858
+            $i++;
859
+        }
860
+        if($primary_key != "")
861
+        $pk = "primary key(".$primary_key.")";
862
+
863
+        if(is_array($unique_keys))
864
+        {
865
+            $i = 0;
866
+            foreach($unique_keys as $key => $value)
867
+            {
868
+                $sqluq[$i] = "UNIQUE KEY '".$key."' ('".$value."')";
869
+                $i++;
870
+            }
871
+        }
872
+        if(is_array($keys))
873
+        {
874
+            $i = 0;
875
+            foreach($keys as $key => $value)
876
+            {
877
+                $sqlk[$i] = "KEY ".$key." (".$value.")";
878
+                $i++;
879
+            }
880
+        }
881
+        $sql .= implode(',',$sqlfields);
882
+        if($primary_key != "")
883
+        $sql .= ",".$pk;
884
+        if(is_array($unique_keys))
885
+        $sql .= ",".implode(',',$sqluq);
886
+        if(is_array($keys))
887
+        $sql .= ",".implode(',',$sqlk);
888
+        $sql .=") type=".$type;
889
+
890
+        dol_syslog($sql);
891
+        if (!$this->query($sql))
892 892
             return -1;
893
-		else
894
-		return 1;
895
-	}
893
+        else
894
+        return 1;
895
+    }
896 896
 
897 897
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
898
-	/**
899
-	 *	Drop a table into database
900
-	 *
901
-	 *	@param	    string	$table 			Name of table
902
-	 *	@return	    int						<0 if KO, >=0 if OK
903
-	 */
904
-	function DDLDropTable($table)
905
-	{
898
+    /**
899
+     *	Drop a table into database
900
+     *
901
+     *	@param	    string	$table 			Name of table
902
+     *	@return	    int						<0 if KO, >=0 if OK
903
+     */
904
+    function DDLDropTable($table)
905
+    {
906 906
         // phpcs:enable
907
-		$sql = "DROP TABLE ".$table;
907
+        $sql = "DROP TABLE ".$table;
908 908
 
909
-		if (! $this->query($sql))
910
-			return -1;
911
-		else
912
-			return 1;
913
-	}
909
+        if (! $this->query($sql))
910
+            return -1;
911
+        else
912
+            return 1;
913
+    }
914 914
 
915 915
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
916
-	/**
917
-	 *	Return a pointer of line with description of a table or field
918
-	 *
919
-	 *	@param	string		$table	Name of table
920
-	 *	@param	string		$field	Optionnel : Name of field if we want description of field
921
-	 *	@return	false|resource|true	Resource
922
-	 */
923
-	function DDLDescTable($table,$field="")
924
-	{
916
+    /**
917
+     *	Return a pointer of line with description of a table or field
918
+     *
919
+     *	@param	string		$table	Name of table
920
+     *	@param	string		$field	Optionnel : Name of field if we want description of field
921
+     *	@return	false|resource|true	Resource
922
+     */
923
+    function DDLDescTable($table,$field="")
924
+    {
925 925
         // phpcs:enable
926
-		$sql="DESC ".$table." ".$field;
926
+        $sql="DESC ".$table." ".$field;
927 927
 
928
-		dol_syslog($sql);
929
-		$this->_results = $this->query($sql);
930
-		return $this->_results;
931
-	}
928
+        dol_syslog($sql);
929
+        $this->_results = $this->query($sql);
930
+        return $this->_results;
931
+    }
932 932
 
933 933
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
934
-	/**
935
-	 *	Create a new field into table
936
-	 *
937
-	 *	@param	string	$table 				Name of table
938
-	 *	@param	string	$field_name 		Name of field to add
939
-	 *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
940
-	 *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
941
-	 *	@return	int							<0 if KO, >0 if OK
942
-	 */
943
-	function DDLAddField($table,$field_name,$field_desc,$field_position="")
944
-	{
934
+    /**
935
+     *	Create a new field into table
936
+     *
937
+     *	@param	string	$table 				Name of table
938
+     *	@param	string	$field_name 		Name of field to add
939
+     *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
940
+     *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
941
+     *	@return	int							<0 if KO, >0 if OK
942
+     */
943
+    function DDLAddField($table,$field_name,$field_desc,$field_position="")
944
+    {
945 945
         // phpcs:enable
946
-		// cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
947
-		// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
948
-		$sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
949
-		$sql .= $field_desc['type'];
950
-		if( preg_match("/^[^\s]/i",$field_desc['value']))
951
-		$sql  .= "(".$field_desc['value'].")";
952
-		if( preg_match("/^[^\s]/i",$field_desc['attribute']))
953
-		$sql  .= " ".$field_desc['attribute'];
954
-		if( preg_match("/^[^\s]/i",$field_desc['null']))
955
-		$sql  .= " ".$field_desc['null'];
956
-		if( preg_match("/^[^\s]/i",$field_desc['default']))
957
-		if(preg_match("/null/i",$field_desc['default']))
958
-		$sql  .= " default ".$field_desc['default'];
959
-		else
960
-		$sql  .= " default '".$field_desc['default']."'";
961
-		if( preg_match("/^[^\s]/i",$field_desc['extra']))
962
-		$sql  .= " ".$field_desc['extra'];
963
-		$sql .= " ".$field_position;
964
-
965
-		if (!$this->query($sql))
946
+        // cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
947
+        // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
948
+        $sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
949
+        $sql .= $field_desc['type'];
950
+        if( preg_match("/^[^\s]/i",$field_desc['value']))
951
+        $sql  .= "(".$field_desc['value'].")";
952
+        if( preg_match("/^[^\s]/i",$field_desc['attribute']))
953
+        $sql  .= " ".$field_desc['attribute'];
954
+        if( preg_match("/^[^\s]/i",$field_desc['null']))
955
+        $sql  .= " ".$field_desc['null'];
956
+        if( preg_match("/^[^\s]/i",$field_desc['default']))
957
+        if(preg_match("/null/i",$field_desc['default']))
958
+        $sql  .= " default ".$field_desc['default'];
959
+        else
960
+        $sql  .= " default '".$field_desc['default']."'";
961
+        if( preg_match("/^[^\s]/i",$field_desc['extra']))
962
+        $sql  .= " ".$field_desc['extra'];
963
+        $sql .= " ".$field_position;
964
+
965
+        if (!$this->query($sql))
966 966
             return -1;
967
-		else
968
-		return 1;
969
-	}
967
+        else
968
+        return 1;
969
+    }
970 970
 
971 971
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
972
-	/**
973
-	 *	Update format of a field into a table
974
-	 *
975
-	 *	@param	string	$table 				Name of table
976
-	 *	@param	string	$field_name 		Name of field to modify
977
-	 *	@param	string	$field_desc 		Array with description of field format
978
-	 *	@return	int							<0 if KO, >0 if OK
979
-	 */
980
-	function DDLUpdateField($table,$field_name,$field_desc)
981
-	{
972
+    /**
973
+     *	Update format of a field into a table
974
+     *
975
+     *	@param	string	$table 				Name of table
976
+     *	@param	string	$field_name 		Name of field to modify
977
+     *	@param	string	$field_desc 		Array with description of field format
978
+     *	@return	int							<0 if KO, >0 if OK
979
+     */
980
+    function DDLUpdateField($table,$field_name,$field_desc)
981
+    {
982 982
         // phpcs:enable
983
-		$sql = "ALTER TABLE ".$table;
984
-		$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
985
-		if ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
986
-			$sql.="(".$field_desc['value'].")";
987
-		}
988
-
989
-		dol_syslog($sql,LOG_DEBUG);
990
-		if (! $this->query($sql))
991
-		return -1;
992
-		else
993
-		return 1;
994
-	}
983
+        $sql = "ALTER TABLE ".$table;
984
+        $sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
985
+        if ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
986
+            $sql.="(".$field_desc['value'].")";
987
+        }
988
+
989
+        dol_syslog($sql,LOG_DEBUG);
990
+        if (! $this->query($sql))
991
+        return -1;
992
+        else
993
+        return 1;
994
+    }
995 995
 
996 996
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
997
-	/**
998
-	 *	Drop a field from table
999
-	 *
1000
-	 *	@param	string	$table 			Name of table
1001
-	 *	@param	string	$field_name 	Name of field to drop
1002
-	 *	@return	int						<0 if KO, >0 if OK
1003
-	 */
1004
-	function DDLDropField($table,$field_name)
1005
-	{
997
+    /**
998
+     *	Drop a field from table
999
+     *
1000
+     *	@param	string	$table 			Name of table
1001
+     *	@param	string	$field_name 	Name of field to drop
1002
+     *	@return	int						<0 if KO, >0 if OK
1003
+     */
1004
+    function DDLDropField($table,$field_name)
1005
+    {
1006 1006
         // phpcs:enable
1007
-		$sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`";
1008
-		dol_syslog($sql,LOG_DEBUG);
1009
-		if (! $this->query($sql))
1010
-		{
1011
-			$this->error=$this->lasterror();
1012
-			return -1;
1013
-		}
1014
-		else return 1;
1015
-	}
1007
+        $sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`";
1008
+        dol_syslog($sql,LOG_DEBUG);
1009
+        if (! $this->query($sql))
1010
+        {
1011
+            $this->error=$this->lasterror();
1012
+            return -1;
1013
+        }
1014
+        else return 1;
1015
+    }
1016 1016
 
1017 1017
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1018
-	/**
1019
-	 * 	Create a user and privileges to connect to database (even if database does not exists yet)
1020
-	 *
1021
-	 *	@param	string	$dolibarr_main_db_host 		Ip serveur
1022
-	 *	@param	string	$dolibarr_main_db_user 		Nom user a creer
1023
-	 *	@param	string	$dolibarr_main_db_pass 		Mot de passe user a creer
1024
-	 *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
1025
-	 *	@return	int									<0 if KO, >=0 if OK
1026
-	 */
1027
-	function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
1028
-	{
1018
+    /**
1019
+     * 	Create a user and privileges to connect to database (even if database does not exists yet)
1020
+     *
1021
+     *	@param	string	$dolibarr_main_db_host 		Ip serveur
1022
+     *	@param	string	$dolibarr_main_db_user 		Nom user a creer
1023
+     *	@param	string	$dolibarr_main_db_pass 		Mot de passe user a creer
1024
+     *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
1025
+     *	@return	int									<0 if KO, >=0 if OK
1026
+     */
1027
+    function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
1028
+    {
1029 1029
         // phpcs:enable
1030 1030
         $sql = "CREATE LOGIN ".$this->EscapeFieldName($dolibarr_main_db_user)." WITH PASSWORD='$dolibarr_main_db_pass'";
1031 1031
         dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG);	// No sql to avoid password in log
@@ -1034,12 +1034,12 @@  discard block
 block discarded – undo
1034 1034
         {
1035 1035
             if ($this->lasterrno != '15025')
1036 1036
             {
1037
-	            return -1;
1037
+                return -1;
1038 1038
             }
1039 1039
             else
1040
-			{
1041
-            	// If user already exists, we continue to set permissions
1042
-            	dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
1040
+            {
1041
+                // If user already exists, we continue to set permissions
1042
+                dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
1043 1043
             }
1044 1044
         }
1045 1045
         $sql="SELECT name from sys.databases where name='".$dolibarr_main_db_name."'";
@@ -1060,8 +1060,8 @@  discard block
 block discarded – undo
1060 1060
                 $this->query($sql);
1061 1061
             }
1062 1062
         }
1063
-	    return 1;
1064
-	}
1063
+        return 1;
1064
+    }
1065 1065
 
1066 1066
     /**
1067 1067
      *	Return charset used to store data in database
@@ -1069,158 +1069,158 @@  discard block
 block discarded – undo
1069 1069
      *	@return		string		Charset
1070 1070
      */
1071 1071
     function getDefaultCharacterSetDatabase()
1072
-	{
1073
-		// FIXME: Dummy method
1074
-		// TODO: Implement
1075
-
1076
-		return '';
1077
-	}
1078
-
1079
-	/**
1080
-	 *	Return list of available charset that can be used to store data in database
1081
-	 *
1082
-	 *	@return		array		List of Charset
1083
-	 */
1084
-	function getListOfCharacterSet()
1085
-	{
1086
-		// FIXME: Dummy method
1087
-		// TODO: Implement
1088
-
1089
-		return '';
1090
-	}
1091
-
1092
-	/**
1093
-	 *	Return collation used in database
1094
-	 *
1095
-	 *	@return		string		Collation value
1096
-	 */
1097
-	function getDefaultCollationDatabase()
1098
-	{
1099
-		$resql=$this->query("SELECT SERVERPROPERTY('collation')");
1100
-		if (!$resql)
1101
-		{
1102
-			return $this->forcecollate;
1103
-		}
1104
-		$liste=$this->fetch_array($resql);
1105
-		return $liste['computed'];
1106
-	}
1107
-
1108
-	/**
1109
-	 *	Return list of available collation that can be used for database
1110
-	 *
1111
-	 *	@return		array		Liste of Collation
1112
-	 */
1113
-	function getListOfCollation()
1114
-	{
1115
-		// FIXME: Dummy method
1116
-		// TODO: Implement
1117
-
1118
-		return array();
1119
-	}
1120
-
1121
-	/**
1122
-	 *	Return full path of dump program
1123
-	 *
1124
-	 *	@return		string		Full path of dump program
1125
-	 */
1126
-	function getPathOfDump()
1127
-	{
1128
-		// FIXME: Dummy method
1129
-		// TODO: Implement
1130
-
1131
-	    return '';
1132
-	}
1133
-
1134
-	/**
1135
-	 *	Return full path of restore program
1136
-	 *
1137
-	 *	@return		string		Full path of restore program
1138
-	 */
1139
-	function getPathOfRestore()
1140
-	{
1141
-		// FIXME: Dummy method
1142
-		// TODO: Implement
1143
-
1144
-	    return '';
1145
-	}
1146
-
1147
-	/**
1148
-	 * Return value of server parameters
1149
-	 *
1150
-	 * @param	string	$filter		Filter list on a particular value
1151
-	 * @return	array				Array of key-values (key=>value)
1152
-	 */
1153
-	function getServerParametersValues($filter='')
1154
-	{
1155
-		// FIXME: Dummy method
1156
-		// TODO: Implement
1157
-		// May help: SELECT SERVERPROPERTY
1158
-
1159
-		$result=array();
1160
-		return $result;
1161
-	}
1162
-
1163
-	/**
1164
-	 * Return value of server status
1165
-	 *
1166
-	 * @param	string	$filter		Filter list on a particular value
1167
-	 * @return  array				Array of key-values (key=>value)
1168
-	 */
1169
-	function getServerStatusValues($filter='')
1170
-	{
1171
-		// FIXME: Dummy method
1172
-		// TODO: Implement
1173
-		// May help: http://www.experts-exchange.com/Database/MS-SQL-Server/Q_20971756.html
1174
-
1175
-		return array();
1176
-	}
1072
+    {
1073
+        // FIXME: Dummy method
1074
+        // TODO: Implement
1075
+
1076
+        return '';
1077
+    }
1078
+
1079
+    /**
1080
+     *	Return list of available charset that can be used to store data in database
1081
+     *
1082
+     *	@return		array		List of Charset
1083
+     */
1084
+    function getListOfCharacterSet()
1085
+    {
1086
+        // FIXME: Dummy method
1087
+        // TODO: Implement
1088
+
1089
+        return '';
1090
+    }
1091
+
1092
+    /**
1093
+     *	Return collation used in database
1094
+     *
1095
+     *	@return		string		Collation value
1096
+     */
1097
+    function getDefaultCollationDatabase()
1098
+    {
1099
+        $resql=$this->query("SELECT SERVERPROPERTY('collation')");
1100
+        if (!$resql)
1101
+        {
1102
+            return $this->forcecollate;
1103
+        }
1104
+        $liste=$this->fetch_array($resql);
1105
+        return $liste['computed'];
1106
+    }
1107
+
1108
+    /**
1109
+     *	Return list of available collation that can be used for database
1110
+     *
1111
+     *	@return		array		Liste of Collation
1112
+     */
1113
+    function getListOfCollation()
1114
+    {
1115
+        // FIXME: Dummy method
1116
+        // TODO: Implement
1117
+
1118
+        return array();
1119
+    }
1120
+
1121
+    /**
1122
+     *	Return full path of dump program
1123
+     *
1124
+     *	@return		string		Full path of dump program
1125
+     */
1126
+    function getPathOfDump()
1127
+    {
1128
+        // FIXME: Dummy method
1129
+        // TODO: Implement
1130
+
1131
+        return '';
1132
+    }
1133
+
1134
+    /**
1135
+     *	Return full path of restore program
1136
+     *
1137
+     *	@return		string		Full path of restore program
1138
+     */
1139
+    function getPathOfRestore()
1140
+    {
1141
+        // FIXME: Dummy method
1142
+        // TODO: Implement
1143
+
1144
+        return '';
1145
+    }
1146
+
1147
+    /**
1148
+     * Return value of server parameters
1149
+     *
1150
+     * @param	string	$filter		Filter list on a particular value
1151
+     * @return	array				Array of key-values (key=>value)
1152
+     */
1153
+    function getServerParametersValues($filter='')
1154
+    {
1155
+        // FIXME: Dummy method
1156
+        // TODO: Implement
1157
+        // May help: SELECT SERVERPROPERTY
1158
+
1159
+        $result=array();
1160
+        return $result;
1161
+    }
1162
+
1163
+    /**
1164
+     * Return value of server status
1165
+     *
1166
+     * @param	string	$filter		Filter list on a particular value
1167
+     * @return  array				Array of key-values (key=>value)
1168
+     */
1169
+    function getServerStatusValues($filter='')
1170
+    {
1171
+        // FIXME: Dummy method
1172
+        // TODO: Implement
1173
+        // May help: http://www.experts-exchange.com/Database/MS-SQL-Server/Q_20971756.html
1174
+
1175
+        return array();
1176
+    }
1177 1177
 
1178 1178
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1179
-	/**
1180
-	 *    Escape a field name according to escape's syntax
1181
-	 *
1182
-	 * @param      string $fieldname   Field's name to escape
1183
-	 * @return     string              field's name escaped
1184
-	 */
1179
+    /**
1180
+     *    Escape a field name according to escape's syntax
1181
+     *
1182
+     * @param      string $fieldname   Field's name to escape
1183
+     * @return     string              field's name escaped
1184
+     */
1185 1185
     function EscapeFieldName($fieldname)
1186 1186
     {
1187 1187
         // phpcs:enable
1188
-	    return "[".$fieldname."]";
1189
-	}
1188
+        return "[".$fieldname."]";
1189
+    }
1190 1190
 
1191 1191
 
1192 1192
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1193
-	/**
1194
-	 * Get information on field
1195
-	 *
1196
-	 * @param      string  $table      Table name which contains fields
1197
-	 * @param      mixed   $fields     String for one field or array of string for multiple field
1198
-	 * @return false|object
1199
-	 */
1193
+    /**
1194
+     * Get information on field
1195
+     *
1196
+     * @param      string  $table      Table name which contains fields
1197
+     * @param      mixed   $fields     String for one field or array of string for multiple field
1198
+     * @return false|object
1199
+     */
1200 1200
     function GetFieldInformation($table,$fields)
1201 1201
     {
1202 1202
         // phpcs:enable
1203
-	    $sql="SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='".$this->escape($table)."' AND COLUMN_NAME";
1204
-	    if (is_array($fields))
1205
-	    {
1206
-	        $where=" IN ('".implode("','",$fields)."')";
1207
-	    }
1208
-	    else
1209
-	    {
1210
-	        $where="='".$this->escape($fields)."'";
1211
-	    }
1212
-	    $result=array();
1213
-	    $ret=mssql_query($sql.$where,$this->db);
1214
-	    if ($ret)
1215
-	    {
1216
-	        while($obj=mssql_fetch_object($ret))
1217
-	        {
1218
-	            $result[]=$obj;
1219
-	        }
1220
-	    }
1221
-	    else
1222
-	        return false;
1223
-
1224
-	    return $result;
1225
-	}
1203
+        $sql="SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='".$this->escape($table)."' AND COLUMN_NAME";
1204
+        if (is_array($fields))
1205
+        {
1206
+            $where=" IN ('".implode("','",$fields)."')";
1207
+        }
1208
+        else
1209
+        {
1210
+            $where="='".$this->escape($fields)."'";
1211
+        }
1212
+        $result=array();
1213
+        $ret=mssql_query($sql.$where,$this->db);
1214
+        if ($ret)
1215
+        {
1216
+            while($obj=mssql_fetch_object($ret))
1217
+            {
1218
+                $result[]=$obj;
1219
+            }
1220
+        }
1221
+        else
1222
+            return false;
1223
+
1224
+        return $result;
1225
+    }
1226 1226
 }
Please login to merge, or discard this patch.
Braces   +113 added lines, -99 removed lines patch added patch discarded remove patch
@@ -97,8 +97,7 @@  discard block
 block discarded – undo
97 97
 			// (La base Dolibarr a ete forcee en this->forcecharset a l'install)
98 98
 			$this->connected = true;
99 99
 			$this->ok = true;
100
-		}
101
-		else
100
+		} else
102 101
 		{
103 102
 			// host, login ou password incorrect
104 103
 			$this->connected = false;
@@ -115,8 +114,7 @@  discard block
 block discarded – undo
115 114
 				$this->database_selected = true;
116 115
 				$this->database_name = $name;
117 116
 				$this->ok = true;
118
-			}
119
-			else
117
+			} else
120 118
 			{
121 119
 				$this->database_selected = false;
122 120
 				$this->database_name = '';
@@ -124,8 +122,7 @@  discard block
 block discarded – undo
124 122
 				$this->error=$this->error();
125 123
 				dol_syslog(get_class($this)."::DoliDBMssql : Erreur Select_db ".$this->error,LOG_ERR);
126 124
 			}
127
-		}
128
-		else
125
+		} else
129 126
 		{
130 127
 			// Pas de selection de base demandee, ok ou ko
131 128
 			$this->database_selected = false;
@@ -174,7 +171,9 @@  discard block
 block discarded – undo
174 171
 	{
175 172
 		dol_syslog(get_class($this)."::connect host=$host, port=$port, login=$login, passwd=--hidden--, name=$name");
176 173
 		$newhost=$host;
177
-		if ($port) $newhost.=':'.$port;
174
+		if ($port) {
175
+		    $newhost.=':'.$port;
176
+		}
178 177
 		$this->db  = @mssql_connect($newhost, $login, $passwd);
179 178
 		//force les enregistrement en latin1 si la base est en utf8 par defaut
180 179
 		// Supprime car plante sur mon PHP-Mysql. De plus, la base est forcement en latin1 avec
@@ -205,8 +204,9 @@  discard block
 block discarded – undo
205 204
 		{
206 205
             $version=$this->fetch_array($resql);
207 206
             return $version['computed'];
208
-		}
209
-		else return '';
207
+		} else {
208
+		    return '';
209
+		}
210 210
 	}
211 211
 
212 212
 	/**
@@ -229,7 +229,9 @@  discard block
 block discarded – undo
229 229
     {
230 230
         if ($this->db)
231 231
         {
232
-          if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
232
+          if ($this->transaction_opened > 0) {
233
+              dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
234
+          }
233 235
           $this->connected=false;
234 236
           return mssql_close($this->db);
235 237
         }
@@ -257,8 +259,7 @@  discard block
 block discarded – undo
257 259
 				dol_syslog("BEGIN Transaction",LOG_DEBUG);
258 260
 			}
259 261
 			return $ret;
260
-		}
261
-		else
262
+		} else
262 263
 		{
263 264
 			return true;
264 265
 		}
@@ -283,13 +284,11 @@  discard block
 block discarded – undo
283 284
 			{
284 285
 				dol_syslog("COMMIT Transaction",LOG_DEBUG);
285 286
 				return true;
286
-			}
287
-			else
287
+			} else
288 288
 			{
289 289
 				return false;
290 290
 			}
291
-		}
292
-		elseif ($this->transaction_opened > 1)
291
+		} elseif ($this->transaction_opened > 1)
293 292
 		{
294 293
 			return true;
295 294
 		}
@@ -313,8 +312,7 @@  discard block
 block discarded – undo
313 312
 			$ret=mssql_query("ROLLBACK TRANSACTION",$this->db);
314 313
 			dol_syslog("ROLLBACK Transaction".($log?' '.$log:''),LOG_DEBUG);
315 314
 			return $ret;
316
-		}
317
-		elseif ($this->transaction_opened > 1)
315
+		} elseif ($this->transaction_opened > 1)
318 316
 		{
319 317
 			return true;
320 318
 		}
@@ -337,7 +335,9 @@  discard block
 block discarded – undo
337 335
 
338 336
         Debug::addMessage('SQL', 'MSSQL: ' . $query);
339 337
 
340
-        if (preg_match('/^--/',$query)) return true;
338
+        if (preg_match('/^--/',$query)) {
339
+            return true;
340
+        }
341 341
 
342 342
 		// Conversion syntaxe MySql vers MSDE.
343 343
 		$query = str_ireplace("now()", "getdate()", $query);
@@ -371,11 +371,11 @@  discard block
 block discarded – undo
371 371
                             $query_comp[]=$fld->COLUMN_NAME." IS NOT NULL";
372 372
                         }
373 373
                     }
374
-                    if (! empty($query_comp))
375
-                        $query.=" WHERE ".implode(" AND ",$query_comp);
374
+                    if (! empty($query_comp)) {
375
+                                            $query.=" WHERE ".implode(" AND ",$query_comp);
376
+                    }
376 377
                 }
377
-    		}
378
-    		else
378
+    		} else
379 379
     		{
380 380
     		    if (preg_match('/ALTER TABLE\h+(\w+?)\h+ADD\h+PRIMARY\h+KEY\h+(\w+?)\h*\((.+)\)/is', $query, $matches))
381 381
     		    {
@@ -428,14 +428,15 @@  discard block
 block discarded – undo
428 428
 		}
429 429
 		//print "<!--".$query."-->";
430 430
 
431
-		if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
431
+		if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) {
432
+		    dol_syslog('sql='.$query, LOG_DEBUG);
433
+		}
432 434
 
433 435
 		if (! $this->database_name)
434 436
 		{
435 437
 			// Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE)
436 438
 			$ret = mssql_query($query, $this->db);
437
-		}
438
-		else
439
+		} else
439 440
 		{
440 441
 			$ret = mssql_query($query, $this->db);
441 442
 		}
@@ -458,7 +459,9 @@  discard block
 block discarded – undo
458 459
 				$this->lasterrno = $row["code"];
459 460
 
460 461
 				dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);
461
-				if ($original_query) dol_syslog(get_class($this)."::query SQL Original query: ".$original_query, LOG_ERR);
462
+				if ($original_query) {
463
+				    dol_syslog(get_class($this)."::query SQL Original query: ".$original_query, LOG_ERR);
464
+				}
462 465
 				dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterror." (".$this->lasterrno.")", LOG_ERR);
463 466
 			}
464 467
 			$this->lastquery=$query;
@@ -562,7 +565,9 @@  discard block
 block discarded – undo
562 565
 		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
563 566
 		if (! is_resource($resultset)) { $resultset=$this->_results; }
564 567
 		// Si resultset en est un, on libere la memoire
565
-		if (is_resource($resultset)) mssql_free_result($resultset);
568
+		if (is_resource($resultset)) {
569
+		    mssql_free_result($resultset);
570
+		}
566 571
 	}
567 572
 
568 573
 	/**
@@ -600,8 +605,7 @@  discard block
 block discarded – undo
600 605
 		{
601 606
 			// Si il y a eu echec de connexion, $this->db n'est pas valide.
602 607
 			return 'DB_ERROR_FAILED_TO_CONNECT';
603
-		}
604
-		else
608
+		} else
605 609
 		{
606 610
 			// Constants to convert a MSSql error code to a generic Dolibarr error code
607 611
 			$errorcode_map = array(
@@ -652,8 +656,7 @@  discard block
 block discarded – undo
652 656
 		if (! $this->connected) {
653 657
 			// Si il y a eu echec de connexion, $this->db n'est pas valide pour mssql_get_last_message.
654 658
 			return 'Not connected. Check setup parameters in conf/conf.php file and your mssql client and server versions';
655
-		}
656
-		else {
659
+		} else {
657 660
 			return mssql_get_last_message();
658 661
 		}
659 662
 	}
@@ -673,8 +676,7 @@  discard block
 block discarded – undo
673 676
 		if ($res && $data = $this->fetch_array($res))
674 677
 		{
675 678
 			return $data["id"];
676
-		}
677
-		else
679
+		} else
678 680
 		{
679 681
 			return -1;
680 682
 		}
@@ -737,8 +739,9 @@  discard block
 block discarded – undo
737 739
 		{
738 740
             $row=$this->fetch_row($resql);
739 741
             return $row[0];
740
-		}
741
-		else return '?';
742
+		} else {
743
+		    return '?';
744
+		}
742 745
 	}
743 746
 
744 747
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -839,26 +842,27 @@  discard block
 block discarded – undo
839 842
 		{
840 843
 			$sqlfields[$i] = $field_name." ";
841 844
 			$sqlfields[$i]  .= $field_desc['type'];
842
-			if( preg_match("/^[^\s]/i",$field_desc['value']))
843
-			$sqlfields[$i]  .= "(".$field_desc['value'].")";
844
-			else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
845
-			$sqlfields[$i]  .= " ".$field_desc['attribute'];
846
-			else if( preg_match("/^[^\s]/i",$field_desc['default']))
845
+			if( preg_match("/^[^\s]/i",$field_desc['value'])) {
846
+						$sqlfields[$i]  .= "(".$field_desc['value'].")";
847
+			} else if( preg_match("/^[^\s]/i",$field_desc['attribute'])) {
848
+						$sqlfields[$i]  .= " ".$field_desc['attribute'];
849
+			} else if( preg_match("/^[^\s]/i",$field_desc['default']))
847 850
 			{
848
-				if(preg_match("/null/i",$field_desc['default']))
849
-				$sqlfields[$i]  .= " default ".$field_desc['default'];
850
-				else
851
-				$sqlfields[$i]  .= " default '".$field_desc['default']."'";
852
-			}
853
-			else if( preg_match("/^[^\s]/i",$field_desc['null']))
854
-			$sqlfields[$i]  .= " ".$field_desc['null'];
855
-
856
-			else if( preg_match("/^[^\s]/i",$field_desc['extra']))
857
-			$sqlfields[$i]  .= " ".$field_desc['extra'];
851
+				if(preg_match("/null/i",$field_desc['default'])) {
852
+								$sqlfields[$i]  .= " default ".$field_desc['default'];
853
+				} else {
854
+								$sqlfields[$i]  .= " default '".$field_desc['default']."'";
855
+				}
856
+			} else if( preg_match("/^[^\s]/i",$field_desc['null'])) {
857
+						$sqlfields[$i]  .= " ".$field_desc['null'];
858
+			} else if( preg_match("/^[^\s]/i",$field_desc['extra'])) {
859
+						$sqlfields[$i]  .= " ".$field_desc['extra'];
860
+			}
858 861
 			$i++;
859 862
 		}
860
-		if($primary_key != "")
861
-		$pk = "primary key(".$primary_key.")";
863
+		if($primary_key != "") {
864
+				$pk = "primary key(".$primary_key.")";
865
+		}
862 866
 
863 867
 		if(is_array($unique_keys))
864 868
 		{
@@ -879,19 +883,23 @@  discard block
 block discarded – undo
879 883
 			}
880 884
 		}
881 885
 		$sql .= implode(',',$sqlfields);
882
-		if($primary_key != "")
883
-		$sql .= ",".$pk;
884
-		if(is_array($unique_keys))
885
-		$sql .= ",".implode(',',$sqluq);
886
-		if(is_array($keys))
887
-		$sql .= ",".implode(',',$sqlk);
886
+		if($primary_key != "") {
887
+				$sql .= ",".$pk;
888
+		}
889
+		if(is_array($unique_keys)) {
890
+				$sql .= ",".implode(',',$sqluq);
891
+		}
892
+		if(is_array($keys)) {
893
+				$sql .= ",".implode(',',$sqlk);
894
+		}
888 895
 		$sql .=") type=".$type;
889 896
 
890 897
 		dol_syslog($sql);
891
-		if (!$this->query($sql))
892
-            return -1;
893
-		else
894
-		return 1;
898
+		if (!$this->query($sql)) {
899
+		            return -1;
900
+		} else {
901
+				return 1;
902
+		}
895 903
 	}
896 904
 
897 905
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -906,10 +914,11 @@  discard block
 block discarded – undo
906 914
         // phpcs:enable
907 915
 		$sql = "DROP TABLE ".$table;
908 916
 
909
-		if (! $this->query($sql))
910
-			return -1;
911
-		else
912
-			return 1;
917
+		if (! $this->query($sql)) {
918
+					return -1;
919
+		} else {
920
+					return 1;
921
+		}
913 922
 	}
914 923
 
915 924
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -947,25 +956,31 @@  discard block
 block discarded – undo
947 956
 		// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
948 957
 		$sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
949 958
 		$sql .= $field_desc['type'];
950
-		if( preg_match("/^[^\s]/i",$field_desc['value']))
951
-		$sql  .= "(".$field_desc['value'].")";
952
-		if( preg_match("/^[^\s]/i",$field_desc['attribute']))
953
-		$sql  .= " ".$field_desc['attribute'];
954
-		if( preg_match("/^[^\s]/i",$field_desc['null']))
955
-		$sql  .= " ".$field_desc['null'];
956
-		if( preg_match("/^[^\s]/i",$field_desc['default']))
957
-		if(preg_match("/null/i",$field_desc['default']))
958
-		$sql  .= " default ".$field_desc['default'];
959
-		else
960
-		$sql  .= " default '".$field_desc['default']."'";
961
-		if( preg_match("/^[^\s]/i",$field_desc['extra']))
962
-		$sql  .= " ".$field_desc['extra'];
959
+		if( preg_match("/^[^\s]/i",$field_desc['value'])) {
960
+				$sql  .= "(".$field_desc['value'].")";
961
+		}
962
+		if( preg_match("/^[^\s]/i",$field_desc['attribute'])) {
963
+				$sql  .= " ".$field_desc['attribute'];
964
+		}
965
+		if( preg_match("/^[^\s]/i",$field_desc['null'])) {
966
+				$sql  .= " ".$field_desc['null'];
967
+		}
968
+		if( preg_match("/^[^\s]/i",$field_desc['default'])) {
969
+				if(preg_match("/null/i",$field_desc['default']))
970
+		$sql  .= " default ".$field_desc['default'];
971
+		} else {
972
+				$sql  .= " default '".$field_desc['default']."'";
973
+		}
974
+		if( preg_match("/^[^\s]/i",$field_desc['extra'])) {
975
+				$sql  .= " ".$field_desc['extra'];
976
+		}
963 977
 		$sql .= " ".$field_position;
964 978
 
965
-		if (!$this->query($sql))
966
-            return -1;
967
-		else
968
-		return 1;
979
+		if (!$this->query($sql)) {
980
+		            return -1;
981
+		} else {
982
+				return 1;
983
+		}
969 984
 	}
970 985
 
971 986
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -987,10 +1002,11 @@  discard block
 block discarded – undo
987 1002
 		}
988 1003
 
989 1004
 		dol_syslog($sql,LOG_DEBUG);
990
-		if (! $this->query($sql))
991
-		return -1;
992
-		else
993
-		return 1;
1005
+		if (! $this->query($sql)) {
1006
+				return -1;
1007
+		} else {
1008
+				return 1;
1009
+		}
994 1010
 	}
995 1011
 
996 1012
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -1010,8 +1026,9 @@  discard block
 block discarded – undo
1010 1026
 		{
1011 1027
 			$this->error=$this->lasterror();
1012 1028
 			return -1;
1013
-		}
1014
-		else return 1;
1029
+		} else {
1030
+		    return 1;
1031
+		}
1015 1032
 	}
1016 1033
 
1017 1034
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -1035,8 +1052,7 @@  discard block
 block discarded – undo
1035 1052
             if ($this->lasterrno != '15025')
1036 1053
             {
1037 1054
 	            return -1;
1038
-            }
1039
-            else
1055
+            } else
1040 1056
 			{
1041 1057
             	// If user already exists, we continue to set permissions
1042 1058
             	dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
@@ -1048,8 +1064,7 @@  discard block
 block discarded – undo
1048 1064
         {
1049 1065
             dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
1050 1066
             return -1;
1051
-        }
1052
-        else
1067
+        } else
1053 1068
         {
1054 1069
             if ($num)
1055 1070
             {
@@ -1204,8 +1219,7 @@  discard block
 block discarded – undo
1204 1219
 	    if (is_array($fields))
1205 1220
 	    {
1206 1221
 	        $where=" IN ('".implode("','",$fields)."')";
1207
-	    }
1208
-	    else
1222
+	    } else
1209 1223
 	    {
1210 1224
 	        $where="='".$this->escape($fields)."'";
1211 1225
 	    }
@@ -1217,9 +1231,9 @@  discard block
 block discarded – undo
1217 1231
 	        {
1218 1232
 	            $result[]=$obj;
1219 1233
 	        }
1220
-	    }
1221
-	    else
1222
-	        return false;
1234
+	    } else {
1235
+	    	        return false;
1236
+	    }
1223 1237
 
1224 1238
 	    return $result;
1225 1239
 	}
Please login to merge, or discard this patch.
dolibarr/htdocs/core/db/sqlite3.class.php 2 patches
Indentation   +135 added lines, -135 removed lines patch added patch discarded remove patch
@@ -44,8 +44,8 @@  discard block
 block discarded – undo
44 44
     const LABEL='Sqlite3';
45 45
     //! Version min database
46 46
     const VERSIONMIN='3.0.0';
47
-	/** @var SQLite3Result Resultset of last query */
48
-	private $_results;
47
+    /** @var SQLite3Result Resultset of last query */
48
+    private $_results;
49 49
 
50 50
     const WEEK_MONDAY_FIRST=1;
51 51
     const WEEK_YEAR = 2;
@@ -53,15 +53,15 @@  discard block
 block discarded – undo
53 53
 
54 54
 
55 55
     /**
56
-	 *	Constructor.
57
-	 *	This create an opened connexion to a database server and eventually to a database
56
+     *	Constructor.
57
+     *	This create an opened connexion to a database server and eventually to a database
58 58
      *
59
-	 *	@param      string	$type		Type of database (mysql, pgsql...)
60
-	 *	@param	    string	$host		Address of database server
61
-	 *	@param	    string	$user		Nom de l'utilisateur autorise
62
-	 *	@param	    string	$pass		Mot de passe
63
-	 *	@param	    string	$name		Nom de la database
64
-	 *	@param	    int		$port		Port of database server
59
+     *	@param      string	$type		Type of database (mysql, pgsql...)
60
+     *	@param	    string	$host		Address of database server
61
+     *	@param	    string	$user		Nom de l'utilisateur autorise
62
+     *	@param	    string	$pass		Mot de passe
63
+     *	@param	    string	$name		Nom de la database
64
+     *	@param	    int		$port		Port of database server
65 65
      */
66 66
     function __construct($type, $host, $user, $pass, $name='', $port=0)
67 67
     {
@@ -155,9 +155,9 @@  discard block
 block discarded – undo
155 155
         {
156 156
             if ($type == 'auto')
157 157
             {
158
-              if (preg_match('/ALTER TABLE/i',$line)) $type='dml';
159
-              else if (preg_match('/CREATE TABLE/i',$line)) $type='dml';
160
-              else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
158
+                if (preg_match('/ALTER TABLE/i',$line)) $type='dml';
159
+                else if (preg_match('/CREATE TABLE/i',$line)) $type='dml';
160
+                else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
161 161
             }
162 162
 
163 163
             if ($type == 'dml')
@@ -277,7 +277,7 @@  discard block
 block discarded – undo
277 277
             // DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
278 278
             if (preg_match('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i',$line,$reg))
279 279
             {
280
-				if ($reg[1] == $reg[2])	// If same table, we remove second one
280
+                if ($reg[1] == $reg[2])	// If same table, we remove second one
281 281
                 {
282 282
                     $line=preg_replace('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i','DELETE FROM \\1 USING \\3', $line);
283 283
                 }
@@ -303,10 +303,10 @@  discard block
 block discarded – undo
303 303
 
304 304
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
305 305
     /**
306
-	 *	Select a database
306
+     *	Select a database
307 307
      *
308
-	 *	@param	    string	$database	Name of database
309
-	 *	@return	    boolean  		    true if OK, false if KO
308
+     *	@param	    string	$database	Name of database
309
+     *	@return	    boolean  		    true if OK, false if KO
310 310
      */
311 311
     function select_db($database)
312 312
     {
@@ -319,15 +319,15 @@  discard block
 block discarded – undo
319 319
 
320 320
 
321 321
     /**
322
-	 *	Connexion to server
322
+     *	Connexion to server
323 323
      *
324
-	 *	@param	    string	$host		database server host
325
-	 *	@param	    string	$login		login
326
-	 *	@param	    string	$passwd		password
327
-	 *	@param		string	$name		name of database (not used for mysql, used for pgsql)
328
-	 *	@param		integer	$port		Port of database server
329
-	 *	@return		SQLite3				Database access handler
330
-	 *	@see		close
324
+     *	@param	    string	$host		database server host
325
+     *	@param	    string	$login		login
326
+     *	@param	    string	$passwd		password
327
+     *	@param		string	$name		name of database (not used for mysql, used for pgsql)
328
+     *	@param		integer	$port		Port of database server
329
+     *	@return		SQLite3				Database access handler
330
+     *	@see		close
331 331
      */
332 332
     function connect($host, $login, $passwd, $name, $port=0)
333 333
     {
@@ -343,7 +343,7 @@  discard block
 block discarded – undo
343 343
         try {
344 344
             /*** connect to SQLite database ***/
345 345
             //$this->db = new PDO("sqlite:".$dir.'/database_'.$name.'.sdb');
346
-			$this->db = new SQLite3($database_name);
346
+            $this->db = new SQLite3($database_name);
347 347
             //$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
348 348
         }
349 349
         catch(Exception $e)
@@ -358,13 +358,13 @@  discard block
 block discarded – undo
358 358
 
359 359
 
360 360
     /**
361
-	 *	Return version of database server
361
+     *	Return version of database server
362 362
      *
363
-	 *	@return	        string      Version string
363
+     *	@return	        string      Version string
364 364
      */
365 365
     function getVersion()
366 366
     {
367
-    	$tmp=$this->db->version();
367
+        $tmp=$this->db->version();
368 368
         return $tmp['versionString'];
369 369
     }
370 370
 
@@ -516,7 +516,7 @@  discard block
 block discarded – undo
516 516
         if ($ret) {
517 517
             return (object) $ret;
518 518
         }
519
-		return false;
519
+        return false;
520 520
     }
521 521
 
522 522
 
@@ -534,7 +534,7 @@  discard block
 block discarded – undo
534 534
         if (! is_object($resultset)) { $resultset=$this->_results; }
535 535
         //return $resultset->fetch(PDO::FETCH_ASSOC);
536 536
         $ret = $resultset->fetchArray(SQLITE3_ASSOC);
537
-	    return $ret;
537
+        return $ret;
538 538
     }
539 539
 
540 540
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -606,10 +606,10 @@  discard block
 block discarded – undo
606 606
 
607 607
 
608 608
     /**
609
-	 *	Free last resultset used.
609
+     *	Free last resultset used.
610 610
      *
611
-	 *	@param  SQLite3Result	$resultset   Curseur de la requete voulue
612
-	 *	@return	void
611
+     *	@param  SQLite3Result	$resultset   Curseur de la requete voulue
612
+     *	@return	void
613 613
      */
614 614
     function free($resultset=null)
615 615
     {
@@ -620,10 +620,10 @@  discard block
 block discarded – undo
620 620
     }
621 621
 
622 622
     /**
623
-	 *	Escape a string to insert data
623
+     *	Escape a string to insert data
624 624
      *
625
-	 *  @param	string	$stringtoencode		String to escape
626
-	 *  @return	string						String escaped
625
+     *  @param	string	$stringtoencode		String to escape
626
+     *  @return	string						String escaped
627 627
      */
628 628
     function escape($stringtoencode)
629 629
     {
@@ -676,7 +676,7 @@  discard block
 block discarded – undo
676 676
                 return $errorcode_map[$this->db->errorCode()];
677 677
             }*/
678 678
             $errno=$this->db->lastErrorCode();
679
-			if ($errno=='HY000' || $errno == 0)
679
+            if ($errno=='HY000' || $errno == 0)
680 680
             {
681 681
                 if (preg_match('/table.*already exists/i',$this->error))     return 'DB_ERROR_TABLE_ALREADY_EXISTS';
682 682
                 elseif (preg_match('/index.*already exists/i',$this->error)) return 'DB_ERROR_KEY_NAME_ALREADY_EXISTS';
@@ -715,9 +715,9 @@  discard block
 block discarded – undo
715 715
     /**
716 716
      * Get last ID after an insert INSERT
717 717
      *
718
-	 * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
719
-	 * @param	string	$fieldid	Field name
720
-	 * @return  int     			Id of row
718
+     * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
719
+     * @param	string	$fieldid	Field name
720
+     * @return  int     			Id of row
721 721
      */
722 722
     function last_insert_id($tab,$fieldid='rowid')
723 723
     {
@@ -798,7 +798,7 @@  discard block
 block discarded – undo
798 798
     /**
799 799
      * Return connexion ID
800 800
      *
801
-	 * @return	        string      Id connexion
801
+     * @return	        string      Id connexion
802 802
      */
803 803
     function DDLGetConnectId()
804 804
     {
@@ -809,15 +809,15 @@  discard block
 block discarded – undo
809 809
 
810 810
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
811 811
     /**
812
-	 *	Create a new database
813
-	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
814
-	 *	We force to create database with charset this->forcecharset and collate this->forcecollate
812
+     *	Create a new database
813
+     *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
814
+     *	We force to create database with charset this->forcecharset and collate this->forcecollate
815 815
      *
816
-	 *	@param	string	$database		Database name to create
817
-	 * 	@param	string	$charset		Charset used to store data
818
-	 * 	@param	string	$collation		Charset used to sort data
819
-	 * 	@param	string	$owner			Username of database owner
820
-	 * 	@return	SQLite3Result   		resource defined if OK, null if KO
816
+     *	@param	string	$database		Database name to create
817
+     * 	@param	string	$charset		Charset used to store data
818
+     * 	@param	string	$collation		Charset used to sort data
819
+     * 	@param	string	$owner			Username of database owner
820
+     * 	@return	SQLite3Result   		resource defined if OK, null if KO
821 821
      */
822 822
     function DDLCreateDb($database,$charset='',$collation='',$owner='')
823 823
     {
@@ -845,9 +845,9 @@  discard block
 block discarded – undo
845 845
     /**
846 846
      *  List tables into a database
847 847
      *
848
-	 *  @param	string		$database	Name of database
849
-	 *  @param	string		$table		Name of table filter ('xxx%')
850
-	 *  @return	array					List of tables in an array
848
+     *  @param	string		$database	Name of database
849
+     *  @param	string		$table		Name of table filter ('xxx%')
850
+     *  @return	array					List of tables in an array
851 851
      */
852 852
     function DDLListTables($database, $table='')
853 853
     {
@@ -873,9 +873,9 @@  discard block
 block discarded – undo
873 873
     /**
874 874
      *  List information of columns into a table.
875 875
      *
876
-	 *	@param	string	$table		Name of table
877
-	 *	@return	array				Tableau des informations des champs de la table
878
-	 *	TODO modify for sqlite
876
+     *	@param	string	$table		Name of table
877
+     *	@return	array				Tableau des informations des champs de la table
878
+     *	TODO modify for sqlite
879 879
      */
880 880
     function DDLInfoTable($table)
881 881
     {
@@ -898,16 +898,16 @@  discard block
 block discarded – undo
898 898
 
899 899
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
900 900
     /**
901
-	 *	Create a table into database
901
+     *	Create a table into database
902 902
      *
903
-	 *	@param	    string	$table 			Nom de la table
904
-	 *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
905
-	 *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
906
-	 *	@param	    string	$type 			Type de la table
907
-	 *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
908
-	 *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
909
-	 *	@param	    array	$keys 			Tableau des champs cles noms => valeur
910
-	 *	@return	    int						<0 if KO, >=0 if OK
903
+     *	@param	    string	$table 			Nom de la table
904
+     *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
905
+     *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
906
+     *	@param	    string	$type 			Type de la table
907
+     *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
908
+     *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
909
+     *	@param	    array	$keys 			Tableau des champs cles noms => valeur
910
+     *	@return	    int						<0 if KO, >=0 if OK
911 911
      */
912 912
     function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
913 913
     {
@@ -986,21 +986,21 @@  discard block
 block discarded – undo
986 986
     function DDLDropTable($table)
987 987
     {
988 988
         // phpcs:enable
989
-    	$sql = "DROP TABLE ".$table;
989
+        $sql = "DROP TABLE ".$table;
990 990
 
991
-    	if (! $this->query($sql))
992
-    		return -1;
993
-    	else
994
-    		return 1;
991
+        if (! $this->query($sql))
992
+            return -1;
993
+        else
994
+            return 1;
995 995
     }
996 996
 
997 997
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
998 998
     /**
999
-	 *	Return a pointer of line with description of a table or field
999
+     *	Return a pointer of line with description of a table or field
1000 1000
      *
1001
-	 *	@param	string		$table	Name of table
1002
-	 *	@param	string		$field	Optionnel : Name of field if we want description of field
1003
-	 *	@return	SQLite3Result		Resource
1001
+     *	@param	string		$table	Name of table
1002
+     *	@param	string		$field	Optionnel : Name of field if we want description of field
1003
+     *	@return	SQLite3Result		Resource
1004 1004
      */
1005 1005
     function DDLDescTable($table,$field="")
1006 1006
     {
@@ -1014,13 +1014,13 @@  discard block
 block discarded – undo
1014 1014
 
1015 1015
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1016 1016
     /**
1017
-	 *	Create a new field into table
1017
+     *	Create a new field into table
1018 1018
      *
1019
-	 *	@param	string	$table 				Name of table
1020
-	 *	@param	string	$field_name 		Name of field to add
1021
-	 *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
1022
-	 *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
1023
-	 *	@return	int							<0 if KO, >0 if OK
1019
+     *	@param	string	$table 				Name of table
1020
+     *	@param	string	$field_name 		Name of field to add
1021
+     *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
1022
+     *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
1023
+     *	@return	int							<0 if KO, >0 if OK
1024 1024
      */
1025 1025
     function DDLAddField($table,$field_name,$field_desc,$field_position="")
1026 1026
     {
@@ -1059,12 +1059,12 @@  discard block
 block discarded – undo
1059 1059
 
1060 1060
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1061 1061
     /**
1062
-	 *	Update format of a field into a table
1062
+     *	Update format of a field into a table
1063 1063
      *
1064
-	 *	@param	string	$table 				Name of table
1065
-	 *	@param	string	$field_name 		Name of field to modify
1066
-	 *	@param	string	$field_desc 		Array with description of field format
1067
-	 *	@return	int							<0 if KO, >0 if OK
1064
+     *	@param	string	$table 				Name of table
1065
+     *	@param	string	$field_name 		Name of field to modify
1066
+     *	@param	string	$field_desc 		Array with description of field format
1067
+     *	@return	int							<0 if KO, >0 if OK
1068 1068
      */
1069 1069
     function DDLUpdateField($table,$field_name,$field_desc)
1070 1070
     {
@@ -1083,11 +1083,11 @@  discard block
 block discarded – undo
1083 1083
 
1084 1084
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1085 1085
     /**
1086
-	 *	Drop a field from table
1086
+     *	Drop a field from table
1087 1087
      *
1088
-	 *	@param	string	$table 			Name of table
1089
-	 *	@param	string	$field_name 	Name of field to drop
1090
-	 *	@return	int						<0 if KO, >0 if OK
1088
+     *	@param	string	$table 			Name of table
1089
+     *	@param	string	$field_name 	Name of field to drop
1090
+     *	@return	int						<0 if KO, >0 if OK
1091 1091
      */
1092 1092
     function DDLDropField($table,$field_name)
1093 1093
     {
@@ -1107,11 +1107,11 @@  discard block
 block discarded – undo
1107 1107
     /**
1108 1108
      * 	Create a user and privileges to connect to database (even if database does not exists yet)
1109 1109
      *
1110
-	 *	@param	string	$dolibarr_main_db_host 		Ip serveur
1111
-	 *	@param	string	$dolibarr_main_db_user 		Nom user a creer
1112
-	 *	@param	string	$dolibarr_main_db_pass 		Mot de passe user a creer
1113
-	 *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
1114
-	 *	@return	int									<0 if KO, >=0 if OK
1110
+     *	@param	string	$dolibarr_main_db_host 		Ip serveur
1111
+     *	@param	string	$dolibarr_main_db_user 		Nom user a creer
1112
+     *	@param	string	$dolibarr_main_db_pass 		Mot de passe user a creer
1113
+     *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
1114
+     *	@return	int									<0 if KO, >=0 if OK
1115 1115
      */
1116 1116
     function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
1117 1117
     {
@@ -1152,9 +1152,9 @@  discard block
 block discarded – undo
1152 1152
     }
1153 1153
 
1154 1154
     /**
1155
-	 *	Return charset used to store data in database
1155
+     *	Return charset used to store data in database
1156 1156
      *
1157
-	 *	@return		string		Charset
1157
+     *	@return		string		Charset
1158 1158
      */
1159 1159
     function getDefaultCharacterSetDatabase()
1160 1160
     {
@@ -1162,9 +1162,9 @@  discard block
 block discarded – undo
1162 1162
     }
1163 1163
 
1164 1164
     /**
1165
-	 *	Return list of available charset that can be used to store data in database
1165
+     *	Return list of available charset that can be used to store data in database
1166 1166
      *
1167
-	 *	@return		array		List of Charset
1167
+     *	@return		array		List of Charset
1168 1168
      */
1169 1169
     function getListOfCharacterSet()
1170 1170
     {
@@ -1176,9 +1176,9 @@  discard block
 block discarded – undo
1176 1176
     }
1177 1177
 
1178 1178
     /**
1179
-	 *	Return collation used in database
1179
+     *	Return collation used in database
1180 1180
      *
1181
-	 *	@return		string		Collation value
1181
+     *	@return		string		Collation value
1182 1182
      */
1183 1183
     function getDefaultCollationDatabase()
1184 1184
     {
@@ -1186,9 +1186,9 @@  discard block
 block discarded – undo
1186 1186
     }
1187 1187
 
1188 1188
     /**
1189
-	 *	Return list of available collation that can be used for database
1189
+     *	Return list of available collation that can be used for database
1190 1190
      *
1191
-	 *	@return		array		List of Collation
1191
+     *	@return		array		List of Collation
1192 1192
      */
1193 1193
     function getListOfCollation()
1194 1194
     {
@@ -1200,13 +1200,13 @@  discard block
 block discarded – undo
1200 1200
     }
1201 1201
 
1202 1202
     /**
1203
-	 *	Return full path of dump program
1203
+     *	Return full path of dump program
1204 1204
      *
1205
-	 *	@return		string		Full path of dump program
1205
+     *	@return		string		Full path of dump program
1206 1206
      */
1207 1207
     function getPathOfDump()
1208 1208
     {
1209
-	    // FIXME: not for SQLite
1209
+        // FIXME: not for SQLite
1210 1210
         $fullpathofdump='/pathtomysqldump/mysqldump';
1211 1211
 
1212 1212
         $resql=$this->query('SHOW VARIABLES LIKE \'basedir\'');
@@ -1220,13 +1220,13 @@  discard block
 block discarded – undo
1220 1220
     }
1221 1221
 
1222 1222
     /**
1223
-	 *	Return full path of restore program
1223
+     *	Return full path of restore program
1224 1224
      *
1225
-	 *	@return		string		Full path of restore program
1225
+     *	@return		string		Full path of restore program
1226 1226
      */
1227 1227
     function getPathOfRestore()
1228 1228
     {
1229
-	    // FIXME: not for SQLite
1229
+        // FIXME: not for SQLite
1230 1230
         $fullpathofimport='/pathtomysql/mysql';
1231 1231
 
1232 1232
         $resql=$this->query('SHOW VARIABLES LIKE \'basedir\'');
@@ -1242,8 +1242,8 @@  discard block
 block discarded – undo
1242 1242
     /**
1243 1243
      * Return value of server parameters
1244 1244
      *
1245
-	 * @param	string	$filter		Filter list on a particular value
1246
-	 * @return	array				Array of key-values (key=>value)
1245
+     * @param	string	$filter		Filter list on a particular value
1246
+     * @return	array				Array of key-values (key=>value)
1247 1247
      */
1248 1248
     function getServerParametersValues($filter='')
1249 1249
     {
@@ -1256,7 +1256,7 @@  discard block
 block discarded – undo
1256 1256
             $pragmas = array(
1257 1257
                 'application_id', 'auto_vacuum', 'automatic_index', 'busy_timeout', 'cache_size',
1258 1258
                 'cache_spill', 'case_sensitive_like', 'checkpoint_fullsync', 'collation_list',
1259
-				'compile_options', 'data_version',	/*'database_list',*/
1259
+                'compile_options', 'data_version',	/*'database_list',*/
1260 1260
                 'defer_foreign_keys', 'encoding', 'foreign_key_check', 'freelist_count',
1261 1261
                 'full_column_names', 'fullsync', 'ingore_check_constraints', 'integrity_check',
1262 1262
                 'journal_mode', 'journal_size_limit', 'legacy_file_format', 'locking_mode',
@@ -1291,8 +1291,8 @@  discard block
 block discarded – undo
1291 1291
     /**
1292 1292
      * Return value of server status
1293 1293
      *
1294
-	 * @param	string	$filter		Filter list on a particular value
1295
-	 * @return  array				Array of key-values (key=>value)
1294
+     * @param	string	$filter		Filter list on a particular value
1295
+     * @return  array				Array of key-values (key=>value)
1296 1296
      */
1297 1297
     function getServerStatusValues($filter='')
1298 1298
     {
@@ -1323,7 +1323,7 @@  discard block
 block discarded – undo
1323 1323
     {
1324 1324
         if ($this->db)
1325 1325
         {
1326
-        	$newname=preg_replace('/_/','',$name);
1326
+            $newname=preg_replace('/_/','',$name);
1327 1327
             $localname = __CLASS__ . '::' . 'db' . $newname;
1328 1328
             $reflectClass = new ReflectionClass(__CLASS__);
1329 1329
             $reflectFunction = $reflectClass->getMethod('db' . $newname);
@@ -1390,16 +1390,16 @@  discard block
 block discarded – undo
1390 1390
     }
1391 1391
 
1392 1392
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
1393
-	/**
1394
-	 * calc_week
1395
-	 *
1396
-	 * @param 	string	$year				Year
1397
-	 * @param 	string	$month				Month
1398
-	 * @param 	string	$day				Day
1399
-	 * @param 	string	$week_behaviour		Week behaviour
1400
-	 * @param 	string	$calc_year			???
1401
-	 * @return	string						???
1402
-	 */
1393
+    /**
1394
+     * calc_week
1395
+     *
1396
+     * @param 	string	$year				Year
1397
+     * @param 	string	$month				Month
1398
+     * @param 	string	$day				Day
1399
+     * @param 	string	$week_behaviour		Week behaviour
1400
+     * @param 	string	$calc_year			???
1401
+     * @return	string						???
1402
+     */
1403 1403
     private static function calc_week($year, $month, $day, $week_behaviour, &$calc_year)
1404 1404
     {
1405 1405
         // phpcs:enable
@@ -1420,24 +1420,24 @@  discard block
 block discarded – undo
1420 1420
             $calc_year--;
1421 1421
             $first_daynr-= ($days=self::calc_days_in_year($calc_year));
1422 1422
             $weekday= ($weekday + 53*7- $days) % 7;
1423
-      }
1423
+        }
1424 1424
 
1425
-      if (($first_weekday && $weekday != 0) || (!$first_weekday && $weekday >= 4)) {
1425
+        if (($first_weekday && $weekday != 0) || (!$first_weekday && $weekday >= 4)) {
1426 1426
         $days= $daynr - ($first_daynr+ (7-$weekday));
1427
-      }
1428
-      else {
1427
+        }
1428
+        else {
1429 1429
         $days= $daynr - ($first_daynr - $weekday);
1430
-      }
1430
+        }
1431 1431
 
1432
-      if ($week_year && $days >= 52*7)
1433
-      {
1432
+        if ($week_year && $days >= 52*7)
1433
+        {
1434 1434
         $weekday= ($weekday + self::calc_days_in_year($calc_year)) % 7;
1435 1435
         if ((!$first_weekday && $weekday < 4) || ($first_weekday && $weekday == 0))
1436 1436
         {
1437
-          $calc_year++;
1438
-          return 1;
1437
+            $calc_year++;
1438
+            return 1;
1439
+        }
1439 1440
         }
1440
-      }
1441
-      return floor($days/7+1);
1441
+        return floor($days/7+1);
1442 1442
     }
1443 1443
 }
Please login to merge, or discard this patch.
Braces   +120 added lines, -87 removed lines patch added patch discarded remove patch
@@ -68,8 +68,12 @@  discard block
 block discarded – undo
68 68
         global $conf;
69 69
 
70 70
         // Note that having "static" property for "$forcecharset" and "$forcecollate" will make error here in strict mode, so they are not static
71
-        if (! empty($conf->db->character_set)) $this->forcecharset=$conf->db->character_set;
72
-        if (! empty($conf->db->dolibarr_main_db_collation)) $this->forcecollate=$conf->db->dolibarr_main_db_collation;
71
+        if (! empty($conf->db->character_set)) {
72
+            $this->forcecharset=$conf->db->character_set;
73
+        }
74
+        if (! empty($conf->db->dolibarr_main_db_collation)) {
75
+            $this->forcecollate=$conf->db->dolibarr_main_db_collation;
76
+        }
73 77
 
74 78
         $this->database_user=$user;
75 79
         $this->database_host=$host;
@@ -117,8 +121,7 @@  discard block
 block discarded – undo
117 121
             $this->addCustomFunction('WEEKDAY');
118 122
             $this->addCustomFunction('date_format');
119 123
             //$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
120
-        }
121
-        else
124
+        } else
122 125
         {
123 126
             // host, login ou password incorrect
124 127
             $this->connected = false;
@@ -155,9 +158,13 @@  discard block
 block discarded – undo
155 158
         {
156 159
             if ($type == 'auto')
157 160
             {
158
-              if (preg_match('/ALTER TABLE/i',$line)) $type='dml';
159
-              else if (preg_match('/CREATE TABLE/i',$line)) $type='dml';
160
-              else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
161
+              if (preg_match('/ALTER TABLE/i',$line)) {
162
+                  $type='dml';
163
+              } else if (preg_match('/CREATE TABLE/i',$line)) {
164
+                  $type='dml';
165
+              } else if (preg_match('/DROP TABLE/i',$line)) {
166
+                  $type='dml';
167
+              }
161 168
             }
162 169
 
163 170
             if ($type == 'dml')
@@ -277,9 +284,11 @@  discard block
 block discarded – undo
277 284
             // DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
278 285
             if (preg_match('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i',$line,$reg))
279 286
             {
280
-				if ($reg[1] == $reg[2])	// If same table, we remove second one
287
+				if ($reg[1] == $reg[2]) {
288
+				    // If same table, we remove second one
281 289
                 {
282
-                    $line=preg_replace('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i','DELETE FROM \\1 USING \\3', $line);
290
+                    $line=preg_replace('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i','DELETE FROM \\1 USING \\3', $line);
291
+				}
283 292
                 }
284 293
             }
285 294
 
@@ -336,7 +345,9 @@  discard block
 block discarded – undo
336 345
         dol_syslog(get_class($this)."::connect name=".$name,LOG_DEBUG);
337 346
 
338 347
         $dir=$main_data_dir;
339
-        if (empty($dir)) $dir=DOL_DATA_ROOT;
348
+        if (empty($dir)) {
349
+            $dir=DOL_DATA_ROOT;
350
+        }
340 351
         // With sqlite, port must be in connect parameters
341 352
         //if (! $newport) $newport=3306;
342 353
         $database_name = $dir.'/database_'.$name.'.sdb';
@@ -345,8 +356,7 @@  discard block
 block discarded – undo
345 356
             //$this->db = new PDO("sqlite:".$dir.'/database_'.$name.'.sdb');
346 357
 			$this->db = new SQLite3($database_name);
347 358
             //$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
348
-        }
349
-        catch(Exception $e)
359
+        } catch(Exception $e)
350 360
         {
351 361
             $this->error=  self::LABEL.' '.$e->getMessage().' current dir='.$database_name;
352 362
             return '';
@@ -389,7 +399,9 @@  discard block
 block discarded – undo
389 399
     {
390 400
         if ($this->db)
391 401
         {
392
-            if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
402
+            if ($this->transaction_opened > 0) {
403
+                dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
404
+            }
393 405
             $this->connected=false;
394 406
             $this->db->close();
395 407
             unset($this->db);    // Clean this->db
@@ -467,8 +479,7 @@  discard block
 block discarded – undo
467 479
             if ($ret) {
468 480
                 $ret->queryString = $query;
469 481
             }
470
-        }
471
-        catch(Exception $e)
482
+        } catch(Exception $e)
472 483
         {
473 484
             $this->error=$this->db->lastErrorMsg();
474 485
         }
@@ -552,8 +563,7 @@  discard block
 block discarded – undo
552 563
         {
553 564
             if (! is_object($resultset)) { $resultset=$this->_results; }
554 565
             return $resultset->fetchArray(SQLITE3_NUM);
555
-        }
556
-        else
566
+        } else
557 567
         {
558 568
             // si le curseur est un booleen on retourne la valeur 0
559 569
             return false;
@@ -616,7 +626,9 @@  discard block
 block discarded – undo
616 626
         // If resultset not provided, we take the last used by connexion
617 627
         if (! is_object($resultset)) { $resultset=$this->_results; }
618 628
         // Si resultset en est un, on libere la memoire
619
-        if ($resultset && is_object($resultset)) $resultset->finalize();
629
+        if ($resultset && is_object($resultset)) {
630
+            $resultset->finalize();
631
+        }
620 632
     }
621 633
 
622 634
     /**
@@ -640,8 +652,7 @@  discard block
 block discarded – undo
640 652
         if (! $this->connected) {
641 653
             // Si il y a eu echec de connexion, $this->db n'est pas valide.
642 654
             return 'DB_ERROR_FAILED_TO_CONNECT';
643
-        }
644
-        else {
655
+        } else {
645 656
             // Constants to convert error code to a generic Dolibarr error code
646 657
             /*$errorcode_map = array(
647 658
             1004 => 'DB_ERROR_CANNOT_CREATE',
@@ -678,14 +689,21 @@  discard block
 block discarded – undo
678 689
             $errno=$this->db->lastErrorCode();
679 690
 			if ($errno=='HY000' || $errno == 0)
680 691
             {
681
-                if (preg_match('/table.*already exists/i',$this->error))     return 'DB_ERROR_TABLE_ALREADY_EXISTS';
682
-                elseif (preg_match('/index.*already exists/i',$this->error)) return 'DB_ERROR_KEY_NAME_ALREADY_EXISTS';
683
-                elseif (preg_match('/syntax error/i',$this->error))          return 'DB_ERROR_SYNTAX';
692
+                if (preg_match('/table.*already exists/i',$this->error)) {
693
+                    return 'DB_ERROR_TABLE_ALREADY_EXISTS';
694
+                } elseif (preg_match('/index.*already exists/i',$this->error)) {
695
+                    return 'DB_ERROR_KEY_NAME_ALREADY_EXISTS';
696
+                } elseif (preg_match('/syntax error/i',$this->error)) {
697
+                    return 'DB_ERROR_SYNTAX';
698
+                }
684 699
             }
685 700
             if ($errno=='23000')
686 701
             {
687
-                if (preg_match('/column.* not unique/i',$this->error))       return 'DB_ERROR_RECORD_ALREADY_EXISTS';
688
-                elseif (preg_match('/PRIMARY KEY must be unique/i',$this->error)) return 'DB_ERROR_RECORD_ALREADY_EXISTS';
702
+                if (preg_match('/column.* not unique/i',$this->error)) {
703
+                    return 'DB_ERROR_RECORD_ALREADY_EXISTS';
704
+                } elseif (preg_match('/PRIMARY KEY must be unique/i',$this->error)) {
705
+                    return 'DB_ERROR_RECORD_ALREADY_EXISTS';
706
+                }
689 707
             }
690 708
             if ($errno > 1) {
691 709
                 // TODO Voir la liste des messages d'erreur
@@ -705,8 +723,7 @@  discard block
 block discarded – undo
705 723
         if (! $this->connected) {
706 724
             // Si il y a eu echec de connexion, $this->db n'est pas valide pour sqlite_error.
707 725
             return 'Not connected. Check setup parameters in conf/conf.php file and your sqlite version';
708
-        }
709
-        else {
726
+        } else {
710 727
             return $this->error;
711 728
         }
712 729
     }
@@ -750,8 +767,7 @@  discard block
 block discarded – undo
750 767
             if ($cryptType == 2)
751 768
             {
752 769
                 $return = 'AES_ENCRYPT('.$return.',\''.$cryptKey.'\')';
753
-            }
754
-            else if ($cryptType == 1)
770
+            } else if ($cryptType == 1)
755 771
             {
756 772
                 $return = 'DES_ENCRYPT('.$return.',\''.$cryptKey.'\')';
757 773
             }
@@ -783,8 +799,7 @@  discard block
 block discarded – undo
783 799
             if ($cryptType == 2)
784 800
             {
785 801
                 $return = 'AES_DECRYPT('.$value.',\''.$cryptKey.'\')';
786
-            }
787
-            else if ($cryptType == 1)
802
+            } else if ($cryptType == 1)
788 803
             {
789 804
                 $return = 'DES_DECRYPT('.$value.',\''.$cryptKey.'\')';
790 805
             }
@@ -822,8 +837,12 @@  discard block
 block discarded – undo
822 837
     function DDLCreateDb($database,$charset='',$collation='',$owner='')
823 838
     {
824 839
         // phpcs:enable
825
-        if (empty($charset))   $charset=$this->forcecharset;
826
-        if (empty($collation)) $collation=$this->forcecollate;
840
+        if (empty($charset)) {
841
+            $charset=$this->forcecharset;
842
+        }
843
+        if (empty($collation)) {
844
+            $collation=$this->forcecollate;
845
+        }
827 846
 
828 847
         // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
829 848
         $sql = 'CREATE DATABASE '.$database;
@@ -855,7 +874,9 @@  discard block
 block discarded – undo
855 874
         $listtables=array();
856 875
 
857 876
         $like = '';
858
-        if ($table) $like = "LIKE '".$table."'";
877
+        if ($table) {
878
+            $like = "LIKE '".$table."'";
879
+        }
859 880
         $sql="SHOW TABLES FROM ".$database." ".$like.";";
860 881
         //print $sql;
861 882
         $result = $this->query($sql);
@@ -922,26 +943,27 @@  discard block
 block discarded – undo
922 943
         {
923 944
             $sqlfields[$i] = $field_name." ";
924 945
             $sqlfields[$i]  .= $field_desc['type'];
925
-            if( preg_match("/^[^\s]/i",$field_desc['value']))
926
-            $sqlfields[$i]  .= "(".$field_desc['value'].")";
927
-            else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
928
-            $sqlfields[$i]  .= " ".$field_desc['attribute'];
929
-            else if( preg_match("/^[^\s]/i",$field_desc['default']))
946
+            if( preg_match("/^[^\s]/i",$field_desc['value'])) {
947
+                        $sqlfields[$i]  .= "(".$field_desc['value'].")";
948
+            } else if( preg_match("/^[^\s]/i",$field_desc['attribute'])) {
949
+                        $sqlfields[$i]  .= " ".$field_desc['attribute'];
950
+            } else if( preg_match("/^[^\s]/i",$field_desc['default']))
930 951
             {
931
-                if(preg_match("/null/i",$field_desc['default']))
932
-                $sqlfields[$i]  .= " default ".$field_desc['default'];
933
-                else
934
-                $sqlfields[$i]  .= " default '".$field_desc['default']."'";
935
-            }
936
-            else if( preg_match("/^[^\s]/i",$field_desc['null']))
937
-            $sqlfields[$i]  .= " ".$field_desc['null'];
938
-
939
-            else if( preg_match("/^[^\s]/i",$field_desc['extra']))
940
-            $sqlfields[$i]  .= " ".$field_desc['extra'];
952
+                if(preg_match("/null/i",$field_desc['default'])) {
953
+                                $sqlfields[$i]  .= " default ".$field_desc['default'];
954
+                } else {
955
+                                $sqlfields[$i]  .= " default '".$field_desc['default']."'";
956
+                }
957
+            } else if( preg_match("/^[^\s]/i",$field_desc['null'])) {
958
+                        $sqlfields[$i]  .= " ".$field_desc['null'];
959
+            } else if( preg_match("/^[^\s]/i",$field_desc['extra'])) {
960
+                        $sqlfields[$i]  .= " ".$field_desc['extra'];
961
+            }
941 962
             $i++;
942 963
         }
943
-        if($primary_key != "")
944
-        $pk = "primary key(".$primary_key.")";
964
+        if($primary_key != "") {
965
+                $pk = "primary key(".$primary_key.")";
966
+        }
945 967
 
946 968
         if(is_array($unique_keys))
947 969
         {
@@ -962,17 +984,21 @@  discard block
 block discarded – undo
962 984
             }
963 985
         }
964 986
         $sql .= implode(',',$sqlfields);
965
-        if($primary_key != "")
966
-        $sql .= ",".$pk;
967
-        if(is_array($unique_keys))
968
-        $sql .= ",".implode(',',$sqluq);
969
-        if(is_array($keys))
970
-        $sql .= ",".implode(',',$sqlk);
987
+        if($primary_key != "") {
988
+                $sql .= ",".$pk;
989
+        }
990
+        if(is_array($unique_keys)) {
991
+                $sql .= ",".implode(',',$sqluq);
992
+        }
993
+        if(is_array($keys)) {
994
+                $sql .= ",".implode(',',$sqlk);
995
+        }
971 996
         $sql .=") type=".$type;
972 997
 
973 998
         dol_syslog($sql,LOG_DEBUG);
974
-        if (!$this->query($sql))
975
-            return -1;
999
+        if (!$this->query($sql)) {
1000
+                    return -1;
1001
+        }
976 1002
         return 1;
977 1003
     }
978 1004
 
@@ -988,10 +1014,11 @@  discard block
 block discarded – undo
988 1014
         // phpcs:enable
989 1015
     	$sql = "DROP TABLE ".$table;
990 1016
 
991
-    	if (! $this->query($sql))
992
-    		return -1;
993
-    	else
994
-    		return 1;
1017
+    	if (! $this->query($sql)) {
1018
+    	    		return -1;
1019
+    	} else {
1020
+    	    		return 1;
1021
+    	}
995 1022
     }
996 1023
 
997 1024
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -1029,24 +1056,29 @@  discard block
 block discarded – undo
1029 1056
         // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
1030 1057
         $sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
1031 1058
         $sql.= $field_desc['type'];
1032
-        if(preg_match("/^[^\s]/i",$field_desc['value']))
1033
-        if (! in_array($field_desc['type'],array('date','datetime')))
1059
+        if(preg_match("/^[^\s]/i",$field_desc['value'])) {
1060
+                if (! in_array($field_desc['type'],array('date','datetime')))
1034 1061
         {
1035
-            $sql.= "(".$field_desc['value'].")";
1062
+            $sql.= "(".$field_desc['value'].")";
1063
+        }
1036 1064
         }
1037
-        if(preg_match("/^[^\s]/i",$field_desc['attribute']))
1038
-        $sql.= " ".$field_desc['attribute'];
1039
-        if(preg_match("/^[^\s]/i",$field_desc['null']))
1040
-        $sql.= " ".$field_desc['null'];
1065
+        if(preg_match("/^[^\s]/i",$field_desc['attribute'])) {
1066
+                $sql.= " ".$field_desc['attribute'];
1067
+        }
1068
+        if(preg_match("/^[^\s]/i",$field_desc['null'])) {
1069
+                $sql.= " ".$field_desc['null'];
1070
+        }
1041 1071
         if(preg_match("/^[^\s]/i",$field_desc['default']))
1042 1072
         {
1043
-            if(preg_match("/null/i",$field_desc['default']))
1044
-            $sql.= " default ".$field_desc['default'];
1045
-            else
1046
-            $sql.= " default '".$field_desc['default']."'";
1073
+            if(preg_match("/null/i",$field_desc['default'])) {
1074
+                        $sql.= " default ".$field_desc['default'];
1075
+            } else {
1076
+                        $sql.= " default '".$field_desc['default']."'";
1077
+            }
1047 1078
         }
1048
-        if(preg_match("/^[^\s]/i",$field_desc['extra']))
1049
-        $sql.= " ".$field_desc['extra'];
1079
+        if(preg_match("/^[^\s]/i",$field_desc['extra'])) {
1080
+                $sql.= " ".$field_desc['extra'];
1081
+        }
1050 1082
         $sql.= " ".$field_position;
1051 1083
 
1052 1084
         dol_syslog(get_class($this)."::DDLAddField ".$sql,LOG_DEBUG);
@@ -1076,8 +1108,9 @@  discard block
 block discarded – undo
1076 1108
         }
1077 1109
 
1078 1110
         dol_syslog(get_class($this)."::DDLUpdateField ".$sql,LOG_DEBUG);
1079
-        if (! $this->query($sql))
1080
-            return -1;
1111
+        if (! $this->query($sql)) {
1112
+                    return -1;
1113
+        }
1081 1114
         return 1;
1082 1115
     }
1083 1116
 
@@ -1279,8 +1312,7 @@  discard block
 block discarded – undo
1279 1312
                 $obj = $this->fetch_row($resql);
1280 1313
                 //dol_syslog(get_class($this)."::select_db getServerParametersValues $var=". print_r($obj, true), LOG_DEBUG);
1281 1314
                 $result[$var] = $obj[0];
1282
-            }
1283
-            else {
1315
+            } else {
1284 1316
                 // TODO Récupérer le message
1285 1317
                 $result[$var] = 'FAIL';
1286 1318
             }
@@ -1350,11 +1382,12 @@  discard block
 block discarded – undo
1350 1382
     {
1351 1383
         // phpcs:enable
1352 1384
         $y = $year;
1353
-        if ($y == 0 && $month == 0) return 0;
1385
+        if ($y == 0 && $month == 0) {
1386
+            return 0;
1387
+        }
1354 1388
         $num = (365* $y + 31 * ($month - 1) + $day);
1355 1389
         if ($month <= 2) {
1356
-            $y--; }
1357
-        else {
1390
+            $y--; } else {
1358 1391
             $num -= floor(($month * 4 + 23) / 10);
1359 1392
         }
1360 1393
         $temp = floor(($y / 100 + 1) * 3 / 4);
@@ -1414,8 +1447,9 @@  discard block
 block discarded – undo
1414 1447
 
1415 1448
         if ($month == 1 && $day <= 7-$weekday)
1416 1449
         {
1417
-            if (!$week_year && (($first_weekday && $weekday != 0) || (!$first_weekday && $weekday >= 4)))
1418
-                return 0;
1450
+            if (!$week_year && (($first_weekday && $weekday != 0) || (!$first_weekday && $weekday >= 4))) {
1451
+                            return 0;
1452
+            }
1419 1453
             $week_year= 1;
1420 1454
             $calc_year--;
1421 1455
             $first_daynr-= ($days=self::calc_days_in_year($calc_year));
@@ -1424,8 +1458,7 @@  discard block
 block discarded – undo
1424 1458
 
1425 1459
       if (($first_weekday && $weekday != 0) || (!$first_weekday && $weekday >= 4)) {
1426 1460
         $days= $daynr - ($first_daynr+ (7-$weekday));
1427
-      }
1428
-      else {
1461
+      } else {
1429 1462
         $days= $daynr - ($first_daynr - $weekday);
1430 1463
       }
1431 1464
 
Please login to merge, or discard this patch.
dolibarr/htdocs/core/db/mysqli.class.php 2 patches
Indentation   +208 added lines, -208 removed lines patch added patch discarded remove patch
@@ -38,27 +38,27 @@  discard block
 block discarded – undo
38 38
  */
39 39
 class DoliDBMysqli extends DoliDB
40 40
 {
41
-	/** @var mysqli Database object */
42
-	public $db;
41
+    /** @var mysqli Database object */
42
+    public $db;
43 43
     //! Database type
44 44
     public $type='mysqli';
45 45
     //! Database label
46 46
     const LABEL='MySQL or MariaDB';
47 47
     //! Version min database
48 48
     const VERSIONMIN='5.0.3';
49
-	/** @var mysqli_result Resultset of last query */
50
-	private $_results;
49
+    /** @var mysqli_result Resultset of last query */
50
+    private $_results;
51 51
 
52 52
     /**
53
-	 *	Constructor.
54
-	 *	This create an opened connexion to a database server and eventually to a database
55
-	 *
56
-	 *	@param      string	$type		Type of database (mysql, pgsql...)
57
-	 *	@param	    string	$host		Address of database server
58
-	 *	@param	    string	$user		Nom de l'utilisateur autorise
59
-	 *	@param	    string	$pass		Mot de passe
60
-	 *	@param	    string	$name		Nom de la database
61
-	 *	@param	    int		$port		Port of database server
53
+     *	Constructor.
54
+     *	This create an opened connexion to a database server and eventually to a database
55
+     *
56
+     *	@param      string	$type		Type of database (mysql, pgsql...)
57
+     *	@param	    string	$host		Address of database server
58
+     *	@param	    string	$user		Nom de l'utilisateur autorise
59
+     *	@param	    string	$pass		Mot de passe
60
+     *	@param	    string	$name		Nom de la database
61
+     *	@param	    int		$port		Port of database server
62 62
      */
63 63
     function __construct($type, $host, $user, $pass, $name='', $port=0)
64 64
     {
@@ -92,21 +92,21 @@  discard block
 block discarded – undo
92 92
             dol_syslog(get_class($this)."::DoliDBMysqli : Connect error, wrong host parameters",LOG_ERR);
93 93
         }
94 94
 
95
-		// Try server connection
96
-		// We do not try to connect to database, only to server. Connect to database is done later in constrcutor
97
-		$this->db = $this->connect($host, $user, $pass, '', $port);
98
-
99
-		if ($this->db->connect_errno) {
100
-			$this->connected = false;
101
-			$this->ok = false;
102
-			$this->error = $this->db->connect_error;
103
-			dol_syslog(get_class($this) . "::DoliDBMysqli Connect error: " . $this->error, LOG_ERR);
104
-		} else {
105
-			$this->connected = true;
106
-			$this->ok = true;
107
-		}
108
-
109
-		// If server connection is ok, we try to connect to the database
95
+        // Try server connection
96
+        // We do not try to connect to database, only to server. Connect to database is done later in constrcutor
97
+        $this->db = $this->connect($host, $user, $pass, '', $port);
98
+
99
+        if ($this->db->connect_errno) {
100
+            $this->connected = false;
101
+            $this->ok = false;
102
+            $this->error = $this->db->connect_error;
103
+            dol_syslog(get_class($this) . "::DoliDBMysqli Connect error: " . $this->error, LOG_ERR);
104
+        } else {
105
+            $this->connected = true;
106
+            $this->ok = true;
107
+        }
108
+
109
+        // If server connection is ok, we try to connect to the database
110 110
         if ($this->connected && $name)
111 111
         {
112 112
             if ($this->select_db($name))
@@ -119,14 +119,14 @@  discard block
 block discarded – undo
119 119
                 $clientmustbe=empty($conf->db->dolibarr_main_db_character_set)?'utf8':$conf->db->dolibarr_main_db_character_set;
120 120
                 if (preg_match('/latin1/', $clientmustbe)) $clientmustbe='utf8';
121 121
 
122
-				if ($this->db->character_set_name() != $clientmustbe) {
123
-					$this->db->set_charset($clientmustbe);	// This set charset, but with a bad collation
122
+                if ($this->db->character_set_name() != $clientmustbe) {
123
+                    $this->db->set_charset($clientmustbe);	// This set charset, but with a bad collation
124 124
 
125
-					$collation = $conf->db->dolibarr_main_db_collation;
126
-					if (preg_match('/latin1/', $collation)) $collation='utf8_unicode_ci';
125
+                    $collation = $conf->db->dolibarr_main_db_collation;
126
+                    if (preg_match('/latin1/', $collation)) $collation='utf8_unicode_ci';
127 127
 
128
-					if (! preg_match('/general/', $collation)) $this->db->query("SET collation_connection = ".$collation);
129
-				}
128
+                    if (! preg_match('/general/', $collation)) $this->db->query("SET collation_connection = ".$collation);
129
+                }
130 130
             }
131 131
             else
132 132
             {
@@ -144,19 +144,19 @@  discard block
 block discarded – undo
144 144
 
145 145
             if ($this->connected)
146 146
             {
147
-            	// If client is old latin, we force utf8
148
-            	$clientmustbe=empty($conf->db->dolibarr_main_db_character_set)?'utf8':$conf->db->dolibarr_main_db_character_set;
149
-            	if (preg_match('/latin1/', $clientmustbe)) $clientmustbe='utf8';
147
+                // If client is old latin, we force utf8
148
+                $clientmustbe=empty($conf->db->dolibarr_main_db_character_set)?'utf8':$conf->db->dolibarr_main_db_character_set;
149
+                if (preg_match('/latin1/', $clientmustbe)) $clientmustbe='utf8';
150 150
 
151
-				if ($this->db->character_set_name() != $clientmustbe) {
152
-					$this->db->set_charset($clientmustbe);	// This set utf8_general_ci
151
+                if ($this->db->character_set_name() != $clientmustbe) {
152
+                    $this->db->set_charset($clientmustbe);	// This set utf8_general_ci
153 153
 
154
-					$collation = $conf->db->dolibarr_main_db_collation;
155
-					if (preg_match('/latin1/', $collation)) $collation='utf8_unicode_ci';
154
+                    $collation = $conf->db->dolibarr_main_db_collation;
155
+                    if (preg_match('/latin1/', $collation)) $collation='utf8_unicode_ci';
156 156
 
157
-					if (! preg_match('/general/', $collation)) $this->db->query("SET collation_connection = ".$collation);
158
-				}
159
-			}
157
+                    if (! preg_match('/general/', $collation)) $this->db->query("SET collation_connection = ".$collation);
158
+                }
159
+            }
160 160
         }
161 161
     }
162 162
 
@@ -174,12 +174,12 @@  discard block
 block discarded – undo
174 174
     }
175 175
 
176 176
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
177
-	/**
178
-	 *  Select a database
179
-	 *
180
-	 *  @param	    string	$database	Name of database
181
-	 *  @return	    boolean  		    true if OK, false if KO
182
-	 */
177
+    /**
178
+     *  Select a database
179
+     *
180
+     *  @param	    string	$database	Name of database
181
+     *  @return	    boolean  		    true if OK, false if KO
182
+     */
183 183
     function select_db($database)
184 184
     {
185 185
         // phpcs:enable
@@ -188,31 +188,31 @@  discard block
 block discarded – undo
188 188
     }
189 189
 
190 190
 
191
-	/**
192
-	 * Connect to server
193
-	 *
194
-	 * @param   string $host database server host
195
-	 * @param   string $login login
196
-	 * @param   string $passwd password
197
-	 * @param   string $name name of database (not used for mysql, used for pgsql)
198
-	 * @param   integer $port Port of database server
199
-	 * @return  mysqli  Database access object
200
-	 * @see close
201
-	 */
202
-	function connect($host, $login, $passwd, $name, $port = 0)
203
-	{
204
-		dol_syslog(get_class($this) . "::connect host=$host, port=$port, login=$login, passwd=--hidden--, name=$name", LOG_DEBUG);
205
-
206
-		// Can also be
207
-		// mysqli::init(); mysql::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0'); mysqli::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
208
-		// return mysqli::real_connect($host, $user, $pass, $db, $port);
209
-		return new mysqli($host, $login, $passwd, $name, $port);
210
-	}
191
+    /**
192
+     * Connect to server
193
+     *
194
+     * @param   string $host database server host
195
+     * @param   string $login login
196
+     * @param   string $passwd password
197
+     * @param   string $name name of database (not used for mysql, used for pgsql)
198
+     * @param   integer $port Port of database server
199
+     * @return  mysqli  Database access object
200
+     * @see close
201
+     */
202
+    function connect($host, $login, $passwd, $name, $port = 0)
203
+    {
204
+        dol_syslog(get_class($this) . "::connect host=$host, port=$port, login=$login, passwd=--hidden--, name=$name", LOG_DEBUG);
205
+
206
+        // Can also be
207
+        // mysqli::init(); mysql::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0'); mysqli::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
208
+        // return mysqli::real_connect($host, $user, $pass, $db, $port);
209
+        return new mysqli($host, $login, $passwd, $name, $port);
210
+    }
211 211
 
212 212
     /**
213
-	 *	Return version of database server
214
-	 *
215
-	 *	@return	        string      Version string
213
+     *	Return version of database server
214
+     *
215
+     *	@return	        string      Version string
216 216
      */
217 217
     function getVersion()
218 218
     {
@@ -224,10 +224,10 @@  discard block
 block discarded – undo
224 224
      *
225 225
      *	@return	        string      Version string
226 226
      */
227
-	function getDriverInfo()
228
-	{
229
-		return $this->db->client_info;
230
-	}
227
+    function getDriverInfo()
228
+    {
229
+        return $this->db->client_info;
230
+    }
231 231
 
232 232
 
233 233
     /**
@@ -240,7 +240,7 @@  discard block
 block discarded – undo
240 240
     {
241 241
         if ($this->db)
242 242
         {
243
-	        if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
243
+            if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
244 244
             $this->connected=false;
245 245
             return $this->db->close();
246 246
         }
@@ -258,7 +258,7 @@  discard block
 block discarded – undo
258 258
      */
259 259
     function query($query,$usesavepoint=0,$type='auto')
260 260
     {
261
-    	global $conf;
261
+        global $conf;
262 262
 
263 263
         $query = trim($query);
264 264
 
@@ -285,7 +285,7 @@  discard block
 block discarded – undo
285 285
                 $this->lasterror = $this->error();
286 286
                 $this->lasterrno = $this->errno();
287 287
 
288
-				if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);	// Log of request was not yet done previously
288
+                if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);	// Log of request was not yet done previously
289 289
                 dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterrno." ".$this->lasterror, LOG_ERR);
290 290
             }
291 291
             $this->lastquery=$query;
@@ -307,7 +307,7 @@  discard block
 block discarded – undo
307 307
         // phpcs:enable
308 308
         // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
309 309
         if (! is_object($resultset)) { $resultset=$this->_results; }
310
-		return $resultset->fetch_object();
310
+        return $resultset->fetch_object();
311 311
     }
312 312
 
313 313
 
@@ -461,9 +461,9 @@  discard block
 block discarded – undo
461 461
     }
462 462
 
463 463
     /**
464
-	 *	Return description of last error
465
-	 *
466
-	 *	@return	string		Error text
464
+     *	Return description of last error
465
+     *
466
+     *	@return	string		Error text
467 467
      */
468 468
     function error()
469 469
     {
@@ -478,11 +478,11 @@  discard block
 block discarded – undo
478 478
 
479 479
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
480 480
     /**
481
-	 * Get last ID after an insert INSERT
482
-	 *
483
-	 * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
484
-	 * @param	string	$fieldid	Field name
485
-	 * @return  int|string			Id of row
481
+     * Get last ID after an insert INSERT
482
+     *
483
+     * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
484
+     * @param	string	$fieldid	Field name
485
+     * @return  int|string			Id of row
486 486
      */
487 487
     function last_insert_id($tab,$fieldid='rowid')
488 488
     {
@@ -562,9 +562,9 @@  discard block
 block discarded – undo
562 562
 
563 563
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
564 564
     /**
565
-	 * Return connexion ID
566
-	 *
567
-	 * @return	        string      Id connexion
565
+     * Return connexion ID
566
+     *
567
+     * @return	        string      Id connexion
568 568
      */
569 569
     function DDLGetConnectId()
570 570
     {
@@ -581,14 +581,14 @@  discard block
 block discarded – undo
581 581
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
582 582
     /**
583 583
      *  Create a new database
584
-	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
585
-	 *	We force to create database with charset this->forcecharset and collate this->forcecollate
586
-	 *
587
-	 *	@param	string	$database		Database name to create
588
-	 * 	@param	string	$charset		Charset used to store data
589
-	 * 	@param	string	$collation		Charset used to sort data
590
-	 * 	@param	string	$owner			Username of database owner
591
-	 * 	@return	bool|mysqli_result		resource defined if OK, null if KO
584
+     *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
585
+     *	We force to create database with charset this->forcecharset and collate this->forcecollate
586
+     *
587
+     *	@param	string	$database		Database name to create
588
+     * 	@param	string	$charset		Charset used to store data
589
+     * 	@param	string	$collation		Charset used to sort data
590
+     * 	@param	string	$owner			Username of database owner
591
+     * 	@return	bool|mysqli_result		resource defined if OK, null if KO
592 592
      */
593 593
     function DDLCreateDb($database,$charset='',$collation='',$owner='')
594 594
     {
@@ -597,8 +597,8 @@  discard block
 block discarded – undo
597 597
         if (empty($collation)) $collation=$this->forcecollate;
598 598
 
599 599
         // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
600
-		$sql = "CREATE DATABASE `".$this->escape($database)."`";
601
-		$sql.= " DEFAULT CHARACTER SET `".$this->escape($charset)."` DEFAULT COLLATE `".$this->escape($collation)."`";
600
+        $sql = "CREATE DATABASE `".$this->escape($database)."`";
601
+        $sql.= " DEFAULT CHARACTER SET `".$this->escape($charset)."` DEFAULT COLLATE `".$this->escape($collation)."`";
602 602
 
603 603
         dol_syslog($sql,LOG_DEBUG);
604 604
         $ret=$this->query($sql);
@@ -614,11 +614,11 @@  discard block
 block discarded – undo
614 614
 
615 615
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
616 616
     /**
617
-	 *  List tables into a database
618
-	 *
619
-	 *  @param	string		$database	Name of database
620
-	 *  @param	string		$table		Nmae of table filter ('xxx%')
621
-	 *  @return	array					List of tables in an array
617
+     *  List tables into a database
618
+     *
619
+     *  @param	string		$database	Name of database
620
+     *  @param	string		$table		Nmae of table filter ('xxx%')
621
+     *  @return	array					List of tables in an array
622 622
      */
623 623
     function DDLListTables($database, $table='')
624 624
     {
@@ -642,10 +642,10 @@  discard block
 block discarded – undo
642 642
 
643 643
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
644 644
     /**
645
-	 *	List information of columns into a table.
646
-	 *
647
-	 *	@param	string	$table		Name of table
648
-	 *	@return	array				Tableau des informations des champs de la table
645
+     *	List information of columns into a table.
646
+     *
647
+     *	@param	string	$table		Name of table
648
+     *	@return	array				Tableau des informations des champs de la table
649 649
      */
650 650
     function DDLInfoTable($table)
651 651
     {
@@ -668,21 +668,21 @@  discard block
 block discarded – undo
668 668
 
669 669
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
670 670
     /**
671
-	 *	Create a table into database
672
-	 *
673
-	 *	@param	    string	$table 			Name of table
674
-	 *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
675
-	 *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
676
-	 *	@param	    string	$type 			Type de la table
677
-	 *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
678
-	 *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
679
-	 *	@param	    array	$keys 			Tableau des champs cles noms => valeur
680
-	 *	@return	    int						<0 if KO, >=0 if OK
671
+     *	Create a table into database
672
+     *
673
+     *	@param	    string	$table 			Name of table
674
+     *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
675
+     *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
676
+     *	@param	    string	$type 			Type de la table
677
+     *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
678
+     *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
679
+     *	@param	    array	$keys 			Tableau des champs cles noms => valeur
680
+     *	@return	    int						<0 if KO, >=0 if OK
681 681
      */
682 682
     function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
683 683
     {
684 684
         // phpcs:enable
685
-	    // FIXME: $fulltext_keys parameter is unused
685
+        // FIXME: $fulltext_keys parameter is unused
686 686
 
687 687
         // cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
688 688
         // ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
@@ -690,29 +690,29 @@  discard block
 block discarded – undo
690 690
         $i=0;
691 691
         foreach($fields as $field_name => $field_desc)
692 692
         {
693
-        	$sqlfields[$i] = $field_name." ";
694
-			$sqlfields[$i]  .= $field_desc['type'];
695
-			if( preg_match("/^[^\s]/i",$field_desc['value'])) {
696
-				$sqlfields[$i]  .= "(".$field_desc['value'].")";
697
-			}
698
-			if( preg_match("/^[^\s]/i",$field_desc['attribute'])) {
699
-				$sqlfields[$i]  .= " ".$field_desc['attribute'];
700
-			}
701
-			if( preg_match("/^[^\s]/i",$field_desc['default']))
702
-			{
703
-				if ((preg_match("/null/i",$field_desc['default'])) || (preg_match("/CURRENT_TIMESTAMP/i",$field_desc['default']))) {
704
-					$sqlfields[$i]  .= " default ".$field_desc['default'];
705
-				}
706
-				else {
707
-					$sqlfields[$i]  .= " default '".$field_desc['default']."'";
708
-				}
709
-			}
710
-			if( preg_match("/^[^\s]/i",$field_desc['null'])) {
711
-				$sqlfields[$i]  .= " ".$field_desc['null'];
712
-			}
713
-			if( preg_match("/^[^\s]/i",$field_desc['extra'])) {
714
-				$sqlfields[$i]  .= " ".$field_desc['extra'];
715
-			}
693
+            $sqlfields[$i] = $field_name." ";
694
+            $sqlfields[$i]  .= $field_desc['type'];
695
+            if( preg_match("/^[^\s]/i",$field_desc['value'])) {
696
+                $sqlfields[$i]  .= "(".$field_desc['value'].")";
697
+            }
698
+            if( preg_match("/^[^\s]/i",$field_desc['attribute'])) {
699
+                $sqlfields[$i]  .= " ".$field_desc['attribute'];
700
+            }
701
+            if( preg_match("/^[^\s]/i",$field_desc['default']))
702
+            {
703
+                if ((preg_match("/null/i",$field_desc['default'])) || (preg_match("/CURRENT_TIMESTAMP/i",$field_desc['default']))) {
704
+                    $sqlfields[$i]  .= " default ".$field_desc['default'];
705
+                }
706
+                else {
707
+                    $sqlfields[$i]  .= " default '".$field_desc['default']."'";
708
+                }
709
+            }
710
+            if( preg_match("/^[^\s]/i",$field_desc['null'])) {
711
+                $sqlfields[$i]  .= " ".$field_desc['null'];
712
+            }
713
+            if( preg_match("/^[^\s]/i",$field_desc['extra'])) {
714
+                $sqlfields[$i]  .= " ".$field_desc['extra'];
715
+            }
716 716
             $i++;
717 717
         }
718 718
         if($primary_key != "")
@@ -762,19 +762,19 @@  discard block
 block discarded – undo
762 762
         // phpcs:enable
763 763
         $sql = "DROP TABLE ".$table;
764 764
 
765
-		if (! $this->query($sql))
766
- 			return -1;
767
-    	else
768
-    		return 1;
765
+        if (! $this->query($sql))
766
+                return -1;
767
+        else
768
+            return 1;
769 769
     }
770 770
 
771 771
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
772 772
     /**
773
-	 *	Return a pointer of line with description of a table or field
774
-	 *
775
-	 *	@param	string		$table	Name of table
776
-	 *	@param	string		$field	Optionnel : Name of field if we want description of field
777
-	 *	@return	bool|mysqli_result	Resultset x (x->Field, x->Type, ...)
773
+     *	Return a pointer of line with description of a table or field
774
+     *
775
+     *	@param	string		$table	Name of table
776
+     *	@param	string		$field	Optionnel : Name of field if we want description of field
777
+     *	@return	bool|mysqli_result	Resultset x (x->Field, x->Type, ...)
778 778
      */
779 779
     function DDLDescTable($table,$field="")
780 780
     {
@@ -788,13 +788,13 @@  discard block
 block discarded – undo
788 788
 
789 789
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
790 790
     /**
791
-	 *	Create a new field into table
792
-	 *
793
-	 *	@param	string	$table 				Name of table
794
-	 *	@param	string	$field_name 		Name of field to add
795
-	 *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
796
-	 *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
797
-	 *	@return	int							<0 if KO, >0 if OK
791
+     *	Create a new field into table
792
+     *
793
+     *	@param	string	$table 				Name of table
794
+     *	@param	string	$field_name 		Name of field to add
795
+     *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
796
+     *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
797
+     *	@return	int							<0 if KO, >0 if OK
798 798
      */
799 799
     function DDLAddField($table,$field_name,$field_desc,$field_position="")
800 800
     {
@@ -812,11 +812,11 @@  discard block
 block discarded – undo
812 812
         }
813 813
         if (isset($field_desc['attribute']) && preg_match("/^[^\s]/i",$field_desc['attribute']))
814 814
         {
815
-        	$sql.= " ".$field_desc['attribute'];
815
+            $sql.= " ".$field_desc['attribute'];
816 816
         }
817 817
         if (isset($field_desc['null']) && preg_match("/^[^\s]/i",$field_desc['null']))
818 818
         {
819
-        	$sql.= " ".$field_desc['null'];
819
+            $sql.= " ".$field_desc['null'];
820 820
         }
821 821
         if (isset($field_desc['default']) && preg_match("/^[^\s]/i",$field_desc['default']))
822 822
         {
@@ -827,7 +827,7 @@  discard block
 block discarded – undo
827 827
         }
828 828
         if (isset($field_desc['extra']) && preg_match("/^[^\s]/i",$field_desc['extra']))
829 829
         {
830
-        	$sql.= " ".$field_desc['extra'];
830
+            $sql.= " ".$field_desc['extra'];
831 831
         }
832 832
         $sql.= " ".$field_position;
833 833
 
@@ -840,12 +840,12 @@  discard block
 block discarded – undo
840 840
 
841 841
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
842 842
     /**
843
-	 *	Update format of a field into a table
844
-	 *
845
-	 *	@param	string	$table 				Name of table
846
-	 *	@param	string	$field_name 		Name of field to modify
847
-	 *	@param	string	$field_desc 		Array with description of field format
848
-	 *	@return	int							<0 if KO, >0 if OK
843
+     *	Update format of a field into a table
844
+     *
845
+     *	@param	string	$table 				Name of table
846
+     *	@param	string	$field_name 		Name of field to modify
847
+     *	@param	string	$field_desc 		Array with description of field format
848
+     *	@return	int							<0 if KO, >0 if OK
849 849
      */
850 850
     function DDLUpdateField($table,$field_name,$field_desc)
851 851
     {
@@ -853,29 +853,29 @@  discard block
 block discarded – undo
853 853
         $sql = "ALTER TABLE ".$table;
854 854
         $sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
855 855
         if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
856
-        	$sql.="(".$field_desc['value'].")";
856
+            $sql.="(".$field_desc['value'].")";
857 857
         }
858 858
         if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL')
859 859
         {
860
-        	// We will try to change format of column to NOT NULL. To be sure the ALTER works, we try to update fields that are NULL
861
-        	if ($field_desc['type'] == 'varchar' || $field_desc['type'] == 'text')
862
-        	{
863
-        		$sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
864
-        		$this->query($sqlbis);
865
-        	}
866
-        	elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
867
-        	{
868
-        		$sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
869
-        		$this->query($sqlbis);
870
-        	}
871
-
872
-        	$sql.=" NOT NULL";
860
+            // We will try to change format of column to NOT NULL. To be sure the ALTER works, we try to update fields that are NULL
861
+            if ($field_desc['type'] == 'varchar' || $field_desc['type'] == 'text')
862
+            {
863
+                $sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
864
+                $this->query($sqlbis);
865
+            }
866
+            elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
867
+            {
868
+                $sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
869
+                $this->query($sqlbis);
870
+            }
871
+
872
+            $sql.=" NOT NULL";
873 873
         }
874 874
 
875 875
         if ($field_desc['default'] != '')
876 876
         {
877
-			if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
878
-        	elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";							// Default not supported on text fields
877
+            if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
878
+            elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";							// Default not supported on text fields
879 879
         }
880 880
 
881 881
         dol_syslog(get_class($this)."::DDLUpdateField ".$sql,LOG_DEBUG);
@@ -887,11 +887,11 @@  discard block
 block discarded – undo
887 887
 
888 888
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
889 889
     /**
890
-	 *	Drop a field from table
891
-	 *
892
-	 *	@param	string	$table 			Name of table
893
-	 *	@param	string	$field_name 	Name of field to drop
894
-	 *	@return	int						<0 if KO, >0 if OK
890
+     *	Drop a field from table
891
+     *
892
+     *	@param	string	$table 			Name of table
893
+     *	@param	string	$field_name 	Name of field to drop
894
+     *	@return	int						<0 if KO, >0 if OK
895 895
      */
896 896
     function DDLDropField($table,$field_name)
897 897
     {
@@ -908,13 +908,13 @@  discard block
 block discarded – undo
908 908
 
909 909
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
910 910
     /**
911
-	 * 	Create a user and privileges to connect to database (even if database does not exists yet)
912
-	 *
913
-	 *	@param	string	$dolibarr_main_db_host 		Ip server or '%'
914
-	 *	@param	string	$dolibarr_main_db_user 		Nom user a creer
915
-	 *	@param	string	$dolibarr_main_db_pass 		Mot de passe user a creer
916
-	 *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
917
-	 *	@return	int									<0 if KO, >=0 if OK
911
+     * 	Create a user and privileges to connect to database (even if database does not exists yet)
912
+     *
913
+     *	@param	string	$dolibarr_main_db_host 		Ip server or '%'
914
+     *	@param	string	$dolibarr_main_db_user 		Nom user a creer
915
+     *	@param	string	$dolibarr_main_db_pass 		Mot de passe user a creer
916
+     *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
917
+     *	@return	int									<0 if KO, >=0 if OK
918 918
      */
919 919
     function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
920 920
     {
@@ -926,12 +926,12 @@  discard block
 block discarded – undo
926 926
         {
927 927
             if ($this->lasterrno != 'DB_ERROR_USER_ALREADY_EXISTS')
928 928
             {
929
-            	return -1;
929
+                return -1;
930 930
             }
931 931
             else
932
-			{
933
-            	// If user already exists, we continue to set permissions
934
-            	dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
932
+            {
933
+                // If user already exists, we continue to set permissions
934
+                dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
935 935
             }
936 936
         }
937 937
         $sql = "GRANT ALL PRIVILEGES ON ".$this->escape($dolibarr_main_db_name).".* TO '".$this->escape($dolibarr_main_db_user)."'@'".$this->escape($dolibarr_main_db_host)."' IDENTIFIED BY '".$this->escape($dolibarr_main_db_pass)."'";
@@ -1047,9 +1047,9 @@  discard block
 block discarded – undo
1047 1047
     }
1048 1048
 
1049 1049
     /**
1050
-	 *	Return full path of dump program
1051
-	 *
1052
-	 *	@return		string		Full path of dump program
1050
+     *	Return full path of dump program
1051
+     *
1052
+     *	@return		string		Full path of dump program
1053 1053
      */
1054 1054
     function getPathOfDump()
1055 1055
     {
@@ -1088,7 +1088,7 @@  discard block
 block discarded – undo
1088 1088
      * Return value of server parameters
1089 1089
      *
1090 1090
      * @param	string	$filter		Filter list on a particular value
1091
-	 * @return	array				Array of key-values (key=>value)
1091
+     * @return	array				Array of key-values (key=>value)
1092 1092
      */
1093 1093
     function getServerParametersValues($filter='')
1094 1094
     {
@@ -1099,7 +1099,7 @@  discard block
 block discarded – undo
1099 1099
         $resql=$this->query($sql);
1100 1100
         if ($resql)
1101 1101
         {
1102
-        	while($obj=$this->fetch_object($resql)) $result[$obj->Variable_name]=$obj->Value;
1102
+            while($obj=$this->fetch_object($resql)) $result[$obj->Variable_name]=$obj->Value;
1103 1103
         }
1104 1104
 
1105 1105
         return $result;
@@ -1109,7 +1109,7 @@  discard block
 block discarded – undo
1109 1109
      * Return value of server status (current indicators on memory, cache...)
1110 1110
      *
1111 1111
      * @param	string	$filter		Filter list on a particular value
1112
-	 * @return  array				Array of key-values (key=>value)
1112
+     * @return  array				Array of key-values (key=>value)
1113 1113
      */
1114 1114
     function getServerStatusValues($filter='')
1115 1115
     {
Please login to merge, or discard this patch.
Braces   +109 added lines, -67 removed lines patch added patch discarded remove patch
@@ -65,8 +65,12 @@  discard block
 block discarded – undo
65 65
         global $conf,$langs;
66 66
 
67 67
         // Note that having "static" property for "$forcecharset" and "$forcecollate" will make error here in strict mode, so they are not static
68
-        if (! empty($conf->db->character_set)) $this->forcecharset=$conf->db->character_set;
69
-        if (! empty($conf->db->dolibarr_main_db_collation)) $this->forcecollate=$conf->db->dolibarr_main_db_collation;
68
+        if (! empty($conf->db->character_set)) {
69
+            $this->forcecharset=$conf->db->character_set;
70
+        }
71
+        if (! empty($conf->db->dolibarr_main_db_collation)) {
72
+            $this->forcecollate=$conf->db->dolibarr_main_db_collation;
73
+        }
70 74
 
71 75
         $this->database_user=$user;
72 76
         $this->database_host=$host;
@@ -117,18 +121,23 @@  discard block
 block discarded – undo
117 121
 
118 122
                 // If client is old latin, we force utf8
119 123
                 $clientmustbe=empty($conf->db->dolibarr_main_db_character_set)?'utf8':$conf->db->dolibarr_main_db_character_set;
120
-                if (preg_match('/latin1/', $clientmustbe)) $clientmustbe='utf8';
124
+                if (preg_match('/latin1/', $clientmustbe)) {
125
+                    $clientmustbe='utf8';
126
+                }
121 127
 
122 128
 				if ($this->db->character_set_name() != $clientmustbe) {
123 129
 					$this->db->set_charset($clientmustbe);	// This set charset, but with a bad collation
124 130
 
125 131
 					$collation = $conf->db->dolibarr_main_db_collation;
126
-					if (preg_match('/latin1/', $collation)) $collation='utf8_unicode_ci';
132
+					if (preg_match('/latin1/', $collation)) {
133
+					    $collation='utf8_unicode_ci';
134
+					}
127 135
 
128
-					if (! preg_match('/general/', $collation)) $this->db->query("SET collation_connection = ".$collation);
136
+					if (! preg_match('/general/', $collation)) {
137
+					    $this->db->query("SET collation_connection = ".$collation);
138
+					}
129 139
 				}
130
-            }
131
-            else
140
+            } else
132 141
             {
133 142
                 $this->database_selected = false;
134 143
                 $this->database_name = '';
@@ -136,8 +145,7 @@  discard block
 block discarded – undo
136 145
                 $this->error=$this->error();
137 146
                 dol_syslog(get_class($this)."::DoliDBMysqli : Select_db error ".$this->error,LOG_ERR);
138 147
             }
139
-        }
140
-        else
148
+        } else
141 149
         {
142 150
             // Pas de selection de base demandee, ok ou ko
143 151
             $this->database_selected = false;
@@ -146,15 +154,21 @@  discard block
 block discarded – undo
146 154
             {
147 155
             	// If client is old latin, we force utf8
148 156
             	$clientmustbe=empty($conf->db->dolibarr_main_db_character_set)?'utf8':$conf->db->dolibarr_main_db_character_set;
149
-            	if (preg_match('/latin1/', $clientmustbe)) $clientmustbe='utf8';
157
+            	if (preg_match('/latin1/', $clientmustbe)) {
158
+            	    $clientmustbe='utf8';
159
+            	}
150 160
 
151 161
 				if ($this->db->character_set_name() != $clientmustbe) {
152 162
 					$this->db->set_charset($clientmustbe);	// This set utf8_general_ci
153 163
 
154 164
 					$collation = $conf->db->dolibarr_main_db_collation;
155
-					if (preg_match('/latin1/', $collation)) $collation='utf8_unicode_ci';
165
+					if (preg_match('/latin1/', $collation)) {
166
+					    $collation='utf8_unicode_ci';
167
+					}
156 168
 
157
-					if (! preg_match('/general/', $collation)) $this->db->query("SET collation_connection = ".$collation);
169
+					if (! preg_match('/general/', $collation)) {
170
+					    $this->db->query("SET collation_connection = ".$collation);
171
+					}
158 172
 				}
159 173
 			}
160 174
         }
@@ -240,7 +254,9 @@  discard block
 block discarded – undo
240 254
     {
241 255
         if ($this->db)
242 256
         {
243
-	        if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
257
+	        if ($this->transaction_opened > 0) {
258
+	            dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
259
+	        }
244 260
             $this->connected=false;
245 261
             return $this->db->close();
246 262
         }
@@ -264,14 +280,15 @@  discard block
 block discarded – undo
264 280
 
265 281
         Debug::addMessage('SQL', 'MySQL: ' . $query);
266 282
 
267
-        if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
283
+        if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) {
284
+            dol_syslog('sql='.$query, LOG_DEBUG);
285
+        }
268 286
 
269 287
         if (! $this->database_name)
270 288
         {
271 289
             // Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE)
272 290
             $ret = $this->db->query($query);
273
-        }
274
-        else
291
+        } else
275 292
         {
276 293
             $ret = $this->db->query($query);
277 294
         }
@@ -285,7 +302,10 @@  discard block
 block discarded – undo
285 302
                 $this->lasterror = $this->error();
286 303
                 $this->lasterrno = $this->errno();
287 304
 
288
-				if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);	// Log of request was not yet done previously
305
+				if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) {
306
+				    dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);
307
+				}
308
+				// Log of request was not yet done previously
289 309
                 dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterrno." ".$this->lasterror, LOG_ERR);
290 310
             }
291 311
             $this->lastquery=$query;
@@ -341,8 +361,7 @@  discard block
 block discarded – undo
341 361
         {
342 362
             if (! is_object($resultset)) { $resultset=$this->_results; }
343 363
             return $resultset->fetch_row();
344
-        }
345
-        else
364
+        } else
346 365
         {
347 366
             // si le curseur est un booleen on retourne la valeur 0
348 367
             return 0;
@@ -395,7 +414,9 @@  discard block
 block discarded – undo
395 414
         // If resultset not provided, we take the last used by connexion
396 415
         if (! is_object($resultset)) { $resultset=$this->_results; }
397 416
         // Si resultset en est un, on libere la memoire
398
-        if (is_object($resultset)) $resultset->free_result();
417
+        if (is_object($resultset)) {
418
+            $resultset->free_result();
419
+        }
399 420
     }
400 421
 
401 422
     /**
@@ -470,8 +491,7 @@  discard block
 block discarded – undo
470 491
         if (! $this->connected) {
471 492
             // Si il y a eu echec de connexion, $this->db n'est pas valide pour mysqli_error.
472 493
             return 'Not connected. Check setup parameters in conf/conf.php file and your mysql client and server versions';
473
-        }
474
-        else {
494
+        } else {
475 495
             return $this->db->error;
476 496
         }
477 497
     }
@@ -516,8 +536,7 @@  discard block
 block discarded – undo
516 536
             if ($cryptType == 2)
517 537
             {
518 538
                 $return = 'AES_ENCRYPT('.$return.',\''.$cryptKey.'\')';
519
-            }
520
-            else if ($cryptType == 1)
539
+            } else if ($cryptType == 1)
521 540
             {
522 541
                 $return = 'DES_ENCRYPT('.$return.',\''.$cryptKey.'\')';
523 542
             }
@@ -549,8 +568,7 @@  discard block
 block discarded – undo
549 568
             if ($cryptType == 2)
550 569
             {
551 570
                 $return = 'AES_DECRYPT('.$value.',\''.$cryptKey.'\')';
552
-            }
553
-            else if ($cryptType == 1)
571
+            } else if ($cryptType == 1)
554 572
             {
555 573
                 $return = 'DES_DECRYPT('.$value.',\''.$cryptKey.'\')';
556 574
             }
@@ -574,8 +592,9 @@  discard block
 block discarded – undo
574 592
         {
575 593
             $row=$this->fetch_row($resql);
576 594
             return $row[0];
577
-        }
578
-        else return '?';
595
+        } else {
596
+            return '?';
597
+        }
579 598
     }
580 599
 
581 600
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -593,8 +612,12 @@  discard block
 block discarded – undo
593 612
     function DDLCreateDb($database,$charset='',$collation='',$owner='')
594 613
     {
595 614
         // phpcs:enable
596
-        if (empty($charset))   $charset=$this->forcecharset;
597
-        if (empty($collation)) $collation=$this->forcecollate;
615
+        if (empty($charset)) {
616
+            $charset=$this->forcecharset;
617
+        }
618
+        if (empty($collation)) {
619
+            $collation=$this->forcecollate;
620
+        }
598 621
 
599 622
         // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
600 623
 		$sql = "CREATE DATABASE `".$this->escape($database)."`";
@@ -626,7 +649,9 @@  discard block
 block discarded – undo
626 649
         $listtables=array();
627 650
 
628 651
         $like = '';
629
-        if ($table) $like = "LIKE '".$table."'";
652
+        if ($table) {
653
+            $like = "LIKE '".$table."'";
654
+        }
630 655
         $sql="SHOW TABLES FROM ".$database." ".$like.";";
631 656
         //print $sql;
632 657
         $result = $this->query($sql);
@@ -702,8 +727,7 @@  discard block
 block discarded – undo
702 727
 			{
703 728
 				if ((preg_match("/null/i",$field_desc['default'])) || (preg_match("/CURRENT_TIMESTAMP/i",$field_desc['default']))) {
704 729
 					$sqlfields[$i]  .= " default ".$field_desc['default'];
705
-				}
706
-				else {
730
+				} else {
707 731
 					$sqlfields[$i]  .= " default '".$field_desc['default']."'";
708 732
 				}
709 733
 			}
@@ -715,8 +739,9 @@  discard block
 block discarded – undo
715 739
 			}
716 740
             $i++;
717 741
         }
718
-        if($primary_key != "")
719
-        $pk = "primary key(".$primary_key.")";
742
+        if($primary_key != "") {
743
+                $pk = "primary key(".$primary_key.")";
744
+        }
720 745
 
721 746
         if(is_array($unique_keys)) {
722 747
             $i = 0;
@@ -736,18 +761,22 @@  discard block
 block discarded – undo
736 761
             }
737 762
         }
738 763
         $sql .= implode(',',$sqlfields);
739
-        if($primary_key != "")
740
-        $sql .= ",".$pk;
741
-        if($unique_keys != "")
742
-        $sql .= ",".implode(',',$sqluq);
743
-        if(is_array($keys))
744
-        $sql .= ",".implode(',',$sqlk);
764
+        if($primary_key != "") {
765
+                $sql .= ",".$pk;
766
+        }
767
+        if($unique_keys != "") {
768
+                $sql .= ",".implode(',',$sqluq);
769
+        }
770
+        if(is_array($keys)) {
771
+                $sql .= ",".implode(',',$sqlk);
772
+        }
745 773
         $sql .=") engine=".$type;
746 774
 
747
-        if(! $this->query($sql))
748
-        return -1;
749
-        else
750
-        return 1;
775
+        if(! $this->query($sql)) {
776
+                return -1;
777
+        } else {
778
+                return 1;
779
+        }
751 780
     }
752 781
 
753 782
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -762,10 +791,11 @@  discard block
 block discarded – undo
762 791
         // phpcs:enable
763 792
         $sql = "DROP TABLE ".$table;
764 793
 
765
-		if (! $this->query($sql))
766
- 			return -1;
767
-    	else
768
-    		return 1;
794
+		if (! $this->query($sql)) {
795
+		 			return -1;
796
+		} else {
797
+    	    		return 1;
798
+    	}
769 799
     }
770 800
 
771 801
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -820,10 +850,11 @@  discard block
 block discarded – undo
820 850
         }
821 851
         if (isset($field_desc['default']) && preg_match("/^[^\s]/i",$field_desc['default']))
822 852
         {
823
-            if(preg_match("/null/i",$field_desc['default']))
824
-            $sql.= " default ".$field_desc['default'];
825
-            else
826
-            $sql.= " default '".$field_desc['default']."'";
853
+            if(preg_match("/null/i",$field_desc['default'])) {
854
+                        $sql.= " default ".$field_desc['default'];
855
+            } else {
856
+                        $sql.= " default '".$field_desc['default']."'";
857
+            }
827 858
         }
828 859
         if (isset($field_desc['extra']) && preg_match("/^[^\s]/i",$field_desc['extra']))
829 860
         {
@@ -862,8 +893,7 @@  discard block
 block discarded – undo
862 893
         	{
863 894
         		$sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
864 895
         		$this->query($sqlbis);
865
-        	}
866
-        	elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
896
+        	} elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
867 897
         	{
868 898
         		$sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
869 899
         		$this->query($sqlbis);
@@ -874,15 +904,20 @@  discard block
 block discarded – undo
874 904
 
875 905
         if ($field_desc['default'] != '')
876 906
         {
877
-			if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
878
-        	elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";							// Default not supported on text fields
907
+			if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') {
908
+			    $sql.=" DEFAULT ".$this->escape($field_desc['default']);
909
+			} elseif ($field_desc['type'] == 'text') {
910
+        	    $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";
911
+        	}
912
+        	// Default not supported on text fields
879 913
         }
880 914
 
881 915
         dol_syslog(get_class($this)."::DDLUpdateField ".$sql,LOG_DEBUG);
882
-        if (! $this->query($sql))
883
-        return -1;
884
-        else
885
-        return 1;
916
+        if (! $this->query($sql)) {
917
+                return -1;
918
+        } else {
919
+                return 1;
920
+        }
886 921
     }
887 922
 
888 923
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -927,8 +962,7 @@  discard block
 block discarded – undo
927 962
             if ($this->lasterrno != 'DB_ERROR_USER_ALREADY_EXISTS')
928 963
             {
929 964
             	return -1;
930
-            }
931
-            else
965
+            } else
932 966
 			{
933 967
             	// If user already exists, we continue to set permissions
934 968
             	dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
@@ -1095,11 +1129,15 @@  discard block
 block discarded – undo
1095 1129
         $result=array();
1096 1130
 
1097 1131
         $sql='SHOW VARIABLES';
1098
-        if ($filter) $sql.=" LIKE '".$this->escape($filter)."'";
1132
+        if ($filter) {
1133
+            $sql.=" LIKE '".$this->escape($filter)."'";
1134
+        }
1099 1135
         $resql=$this->query($sql);
1100 1136
         if ($resql)
1101 1137
         {
1102
-        	while($obj=$this->fetch_object($resql)) $result[$obj->Variable_name]=$obj->Value;
1138
+        	while($obj=$this->fetch_object($resql)) {
1139
+        	    $result[$obj->Variable_name]=$obj->Value;
1140
+        	}
1103 1141
         }
1104 1142
 
1105 1143
         return $result;
@@ -1116,11 +1154,15 @@  discard block
 block discarded – undo
1116 1154
         $result=array();
1117 1155
 
1118 1156
         $sql='SHOW STATUS';
1119
-        if ($filter) $sql.=" LIKE '".$this->escape($filter)."'";
1157
+        if ($filter) {
1158
+            $sql.=" LIKE '".$this->escape($filter)."'";
1159
+        }
1120 1160
         $resql=$this->query($sql);
1121 1161
         if ($resql)
1122 1162
         {
1123
-            while($obj=$this->fetch_object($resql)) $result[$obj->Variable_name]=$obj->Value;
1163
+            while($obj=$this->fetch_object($resql)) {
1164
+                $result[$obj->Variable_name]=$obj->Value;
1165
+            }
1124 1166
         }
1125 1167
 
1126 1168
         return $result;
Please login to merge, or discard this patch.
dolibarr/htdocs/core/db/pgsql.class.php 2 patches
Indentation   +1051 added lines, -1051 removed lines patch added patch discarded remove patch
@@ -43,110 +43,110 @@  discard block
 block discarded – undo
43 43
 class DoliDBPgsql extends DoliDB
44 44
 {
45 45
     //! Database type
46
-	public $type='pgsql';            // Name of manager
46
+    public $type='pgsql';            // Name of manager
47 47
     //! Database label
48
-	const LABEL='PostgreSQL';      // Label of manager
49
-	//! Charset
50
-	var $forcecharset='UTF8';       // Can't be static as it may be forced with a dynamic value
48
+    const LABEL='PostgreSQL';      // Label of manager
49
+    //! Charset
50
+    var $forcecharset='UTF8';       // Can't be static as it may be forced with a dynamic value
51 51
     //! Collate used to force collate when creating database
52 52
     var $forcecollate='';			// Can't be static as it may be forced with a dynamic value
53
-	//! Version min database
54
-	const VERSIONMIN='9.0.0';	// Version min database
55
-	/** @var resource Resultset of last query */
56
-	private $_results;
57
-
58
-	public $unescapeslashquot;
59
-	public $standard_conforming_strings;
60
-
61
-	/**
62
-	 *	Constructor.
63
-	 *	This create an opened connexion to a database server and eventually to a database
64
-	 *
65
-	 *	@param      string	$type		Type of database (mysql, pgsql...)
66
-	 *	@param	    string	$host		Address of database server
67
-	 *	@param	    string	$user		Nom de l'utilisateur autorise
68
-	 *	@param	    string	$pass		Mot de passe
69
-	 *	@param	    string	$name		Nom de la database
70
-	 *	@param	    int		$port		Port of database server
71
-	 */
72
-	function __construct($type, $host, $user, $pass, $name='', $port=0)
73
-	{
74
-		global $conf,$langs;
53
+    //! Version min database
54
+    const VERSIONMIN='9.0.0';	// Version min database
55
+    /** @var resource Resultset of last query */
56
+    private $_results;
57
+
58
+    public $unescapeslashquot;
59
+    public $standard_conforming_strings;
60
+
61
+    /**
62
+     *	Constructor.
63
+     *	This create an opened connexion to a database server and eventually to a database
64
+     *
65
+     *	@param      string	$type		Type of database (mysql, pgsql...)
66
+     *	@param	    string	$host		Address of database server
67
+     *	@param	    string	$user		Nom de l'utilisateur autorise
68
+     *	@param	    string	$pass		Mot de passe
69
+     *	@param	    string	$name		Nom de la database
70
+     *	@param	    int		$port		Port of database server
71
+     */
72
+    function __construct($type, $host, $user, $pass, $name='', $port=0)
73
+    {
74
+        global $conf,$langs;
75 75
 
76 76
         // Note that having "static" property for "$forcecharset" and "$forcecollate" will make error here in strict mode, so they are not static
77
-		if (! empty($conf->db->character_set)) $this->forcecharset=$conf->db->character_set;
78
-		if (! empty($conf->db->dolibarr_main_db_collation))	$this->forcecollate=$conf->db->dolibarr_main_db_collation;
77
+        if (! empty($conf->db->character_set)) $this->forcecharset=$conf->db->character_set;
78
+        if (! empty($conf->db->dolibarr_main_db_collation))	$this->forcecollate=$conf->db->dolibarr_main_db_collation;
79 79
 
80
-		$this->database_user=$user;
80
+        $this->database_user=$user;
81 81
         $this->database_host=$host;
82 82
         $this->database_port=$port;
83 83
 
84
-		$this->transaction_opened=0;
85
-
86
-		//print "Name DB: $host,$user,$pass,$name<br>";
87
-
88
-		if (! function_exists("pg_connect"))
89
-		{
90
-			$this->connected = false;
91
-			$this->ok = false;
92
-			$this->error="Pgsql PHP functions are not available in this version of PHP";
93
-			dol_syslog(get_class($this)."::DoliDBPgsql : Pgsql PHP functions are not available in this version of PHP",LOG_ERR);
94
-			return $this->ok;
95
-		}
96
-
97
-		if (! $host)
98
-		{
99
-			$this->connected = false;
100
-			$this->ok = false;
101
-			$this->error=$langs->trans("ErrorWrongHostParameter");
102
-			dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Connect, wrong host parameters",LOG_ERR);
103
-			return $this->ok;
104
-		}
105
-
106
-		// Essai connexion serveur
107
-		//print "$host, $user, $pass, $name, $port";
108
-		$this->db = $this->connect($host, $user, $pass, $name, $port);
109
-
110
-		if ($this->db)
111
-		{
112
-			$this->connected = true;
113
-			$this->ok = true;
114
-		}
115
-		else
116
-		{
117
-			// host, login ou password incorrect
118
-			$this->connected = false;
119
-			$this->ok = false;
120
-			$this->error='Host, login or password incorrect';
121
-			dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Connect ".$this->error,LOG_ERR);
122
-		}
123
-
124
-		// Si connexion serveur ok et si connexion base demandee, on essaie connexion base
125
-		if ($this->connected && $name)
126
-		{
127
-			if ($this->select_db($name))
128
-			{
129
-				$this->database_selected = true;
130
-				$this->database_name = $name;
131
-				$this->ok = true;
132
-			}
133
-			else
134
-			{
135
-				$this->database_selected = false;
136
-				$this->database_name = '';
137
-				$this->ok = false;
138
-				$this->error=$this->error();
139
-				dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Select_db ".$this->error,LOG_ERR);
140
-			}
141
-		}
142
-		else
143
-		{
144
-			// Pas de selection de base demandee, ok ou ko
145
-			$this->database_selected = false;
146
-		}
147
-
148
-		return $this->ok;
149
-	}
84
+        $this->transaction_opened=0;
85
+
86
+        //print "Name DB: $host,$user,$pass,$name<br>";
87
+
88
+        if (! function_exists("pg_connect"))
89
+        {
90
+            $this->connected = false;
91
+            $this->ok = false;
92
+            $this->error="Pgsql PHP functions are not available in this version of PHP";
93
+            dol_syslog(get_class($this)."::DoliDBPgsql : Pgsql PHP functions are not available in this version of PHP",LOG_ERR);
94
+            return $this->ok;
95
+        }
96
+
97
+        if (! $host)
98
+        {
99
+            $this->connected = false;
100
+            $this->ok = false;
101
+            $this->error=$langs->trans("ErrorWrongHostParameter");
102
+            dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Connect, wrong host parameters",LOG_ERR);
103
+            return $this->ok;
104
+        }
105
+
106
+        // Essai connexion serveur
107
+        //print "$host, $user, $pass, $name, $port";
108
+        $this->db = $this->connect($host, $user, $pass, $name, $port);
109
+
110
+        if ($this->db)
111
+        {
112
+            $this->connected = true;
113
+            $this->ok = true;
114
+        }
115
+        else
116
+        {
117
+            // host, login ou password incorrect
118
+            $this->connected = false;
119
+            $this->ok = false;
120
+            $this->error='Host, login or password incorrect';
121
+            dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Connect ".$this->error,LOG_ERR);
122
+        }
123
+
124
+        // Si connexion serveur ok et si connexion base demandee, on essaie connexion base
125
+        if ($this->connected && $name)
126
+        {
127
+            if ($this->select_db($name))
128
+            {
129
+                $this->database_selected = true;
130
+                $this->database_name = $name;
131
+                $this->ok = true;
132
+            }
133
+            else
134
+            {
135
+                $this->database_selected = false;
136
+                $this->database_name = '';
137
+                $this->ok = false;
138
+                $this->error=$this->error();
139
+                dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Select_db ".$this->error,LOG_ERR);
140
+            }
141
+        }
142
+        else
143
+        {
144
+            // Pas de selection de base demandee, ok ou ko
145
+            $this->database_selected = false;
146
+        }
147
+
148
+        return $this->ok;
149
+    }
150 150
 
151 151
 
152 152
     /**
@@ -157,105 +157,105 @@  discard block
 block discarded – undo
157 157
      *  @param	bool	$unescapeslashquot	Unescape slash quote with quote quote
158 158
      *  @return string   					SQL request line converted
159 159
      */
160
-	static function convertSQLFromMysql($line,$type='auto',$unescapeslashquot=false)
161
-	{
162
-		// Removed empty line if this is a comment line for SVN tagging
163
-		if (preg_match('/^--\s\$Id/i',$line)) {
164
-			return '';
165
-		}
166
-		// Return line if this is a comment
167
-		if (preg_match('/^#/i',$line) || preg_match('/^$/i',$line) || preg_match('/^--/i',$line))
168
-		{
169
-			return $line;
170
-		}
171
-		if ($line != "")
172
-		{
173
-			// group_concat support (PgSQL >= 9.0)
174
-			// Replace group_concat(x) or group_concat(x SEPARATOR ',') with string_agg(x, ',')
175
-		    $line = preg_replace('/GROUP_CONCAT/i', 'STRING_AGG', $line);
176
-			$line = preg_replace('/ SEPARATOR/i', ',', $line);
177
-			$line = preg_replace('/STRING_AGG\(([^,\)]+)\)/i', 'STRING_AGG(\\1, \',\')', $line);
178
-			//print $line."\n";
179
-
180
-		    if ($type == 'auto')
181
-		    {
182
-              if (preg_match('/ALTER TABLE/i',$line)) $type='dml';
183
-              else if (preg_match('/CREATE TABLE/i',$line)) $type='dml';
184
-              else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
185
-		    }
186
-
187
-    		$line=preg_replace('/ as signed\)/i',' as integer)',$line);
188
-
189
-		    if ($type == 'dml')
190
-		    {
160
+    static function convertSQLFromMysql($line,$type='auto',$unescapeslashquot=false)
161
+    {
162
+        // Removed empty line if this is a comment line for SVN tagging
163
+        if (preg_match('/^--\s\$Id/i',$line)) {
164
+            return '';
165
+        }
166
+        // Return line if this is a comment
167
+        if (preg_match('/^#/i',$line) || preg_match('/^$/i',$line) || preg_match('/^--/i',$line))
168
+        {
169
+            return $line;
170
+        }
171
+        if ($line != "")
172
+        {
173
+            // group_concat support (PgSQL >= 9.0)
174
+            // Replace group_concat(x) or group_concat(x SEPARATOR ',') with string_agg(x, ',')
175
+            $line = preg_replace('/GROUP_CONCAT/i', 'STRING_AGG', $line);
176
+            $line = preg_replace('/ SEPARATOR/i', ',', $line);
177
+            $line = preg_replace('/STRING_AGG\(([^,\)]+)\)/i', 'STRING_AGG(\\1, \',\')', $line);
178
+            //print $line."\n";
179
+
180
+            if ($type == 'auto')
181
+            {
182
+                if (preg_match('/ALTER TABLE/i',$line)) $type='dml';
183
+                else if (preg_match('/CREATE TABLE/i',$line)) $type='dml';
184
+                else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
185
+            }
186
+
187
+            $line=preg_replace('/ as signed\)/i',' as integer)',$line);
188
+
189
+            if ($type == 'dml')
190
+            {
191 191
                 $line=preg_replace('/\s/',' ',$line);   // Replace tabulation with space
192 192
 
193
-		        // we are inside create table statement so lets process datatypes
194
-    			if (preg_match('/(ISAM|innodb)/i',$line)) { // end of create table sequence
195
-    				$line=preg_replace('/\)[\s\t]*type[\s\t]*=[\s\t]*(MyISAM|innodb).*;/i',');',$line);
196
-    				$line=preg_replace('/\)[\s\t]*engine[\s\t]*=[\s\t]*(MyISAM|innodb).*;/i',');',$line);
197
-    				$line=preg_replace('/,$/','',$line);
198
-    			}
193
+                // we are inside create table statement so lets process datatypes
194
+                if (preg_match('/(ISAM|innodb)/i',$line)) { // end of create table sequence
195
+                    $line=preg_replace('/\)[\s\t]*type[\s\t]*=[\s\t]*(MyISAM|innodb).*;/i',');',$line);
196
+                    $line=preg_replace('/\)[\s\t]*engine[\s\t]*=[\s\t]*(MyISAM|innodb).*;/i',');',$line);
197
+                    $line=preg_replace('/,$/','',$line);
198
+                }
199 199
 
200
-    			// Process case: "CREATE TABLE llx_mytable(rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,code..."
201
-    			if (preg_match('/[\s\t\(]*(\w*)[\s\t]+int.*auto_increment/i',$line,$reg)) {
202
-    				$newline=preg_replace('/([\s\t\(]*)([a-zA-Z_0-9]*)[\s\t]+int.*auto_increment[^,]*/i','\\1 \\2 SERIAL PRIMARY KEY',$line);
200
+                // Process case: "CREATE TABLE llx_mytable(rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,code..."
201
+                if (preg_match('/[\s\t\(]*(\w*)[\s\t]+int.*auto_increment/i',$line,$reg)) {
202
+                    $newline=preg_replace('/([\s\t\(]*)([a-zA-Z_0-9]*)[\s\t]+int.*auto_increment[^,]*/i','\\1 \\2 SERIAL PRIMARY KEY',$line);
203 203
                     //$line = "-- ".$line." replaced by --\n".$newline;
204 204
                     $line=$newline;
205
-    			}
205
+                }
206 206
 
207
-    			// tinyint type conversion
208
-    			$line=preg_replace('/tinyint\(?[0-9]*\)?/','smallint',$line);
209
-    			$line=preg_replace('/tinyint/i','smallint',$line);
207
+                // tinyint type conversion
208
+                $line=preg_replace('/tinyint\(?[0-9]*\)?/','smallint',$line);
209
+                $line=preg_replace('/tinyint/i','smallint',$line);
210 210
 
211
-    			// nuke unsigned
212
-    			$line=preg_replace('/(int\w+|smallint)\s+unsigned/i','\\1',$line);
211
+                // nuke unsigned
212
+                $line=preg_replace('/(int\w+|smallint)\s+unsigned/i','\\1',$line);
213 213
 
214
-    			// blob -> text
215
-    			$line=preg_replace('/\w*blob/i','text',$line);
214
+                // blob -> text
215
+                $line=preg_replace('/\w*blob/i','text',$line);
216 216
 
217
-    			// tinytext/mediumtext -> text
218
-    			$line=preg_replace('/tinytext/i','text',$line);
219
-    			$line=preg_replace('/mediumtext/i','text',$line);
220
-    			$line=preg_replace('/longtext/i','text',$line);
217
+                // tinytext/mediumtext -> text
218
+                $line=preg_replace('/tinytext/i','text',$line);
219
+                $line=preg_replace('/mediumtext/i','text',$line);
220
+                $line=preg_replace('/longtext/i','text',$line);
221 221
 
222
-    			$line=preg_replace('/text\([0-9]+\)/i','text',$line);
222
+                $line=preg_replace('/text\([0-9]+\)/i','text',$line);
223 223
 
224
-    			// change not null datetime field to null valid ones
225
-    			// (to support remapping of "zero time" to null
226
-    			$line=preg_replace('/datetime not null/i','datetime',$line);
227
-    			$line=preg_replace('/datetime/i','timestamp',$line);
224
+                // change not null datetime field to null valid ones
225
+                // (to support remapping of "zero time" to null
226
+                $line=preg_replace('/datetime not null/i','datetime',$line);
227
+                $line=preg_replace('/datetime/i','timestamp',$line);
228 228
 
229
-    			// double -> numeric
230
-    			$line=preg_replace('/^double/i','numeric',$line);
231
-    			$line=preg_replace('/(\s*)double/i','\\1numeric',$line);
232
-    			// float -> numeric
233
-    			$line=preg_replace('/^float/i','numeric',$line);
234
-    			$line=preg_replace('/(\s*)float/i','\\1numeric',$line);
229
+                // double -> numeric
230
+                $line=preg_replace('/^double/i','numeric',$line);
231
+                $line=preg_replace('/(\s*)double/i','\\1numeric',$line);
232
+                // float -> numeric
233
+                $line=preg_replace('/^float/i','numeric',$line);
234
+                $line=preg_replace('/(\s*)float/i','\\1numeric',$line);
235 235
 
236
-    			//Check tms timestamp field case (in Mysql this field is defautled to now and
237
-    			// on update defaulted by now
238
-    			$line=preg_replace('/(\s*)tms(\s*)timestamp/i','\\1tms timestamp without time zone DEFAULT now() NOT NULL',$line);
236
+                //Check tms timestamp field case (in Mysql this field is defautled to now and
237
+                // on update defaulted by now
238
+                $line=preg_replace('/(\s*)tms(\s*)timestamp/i','\\1tms timestamp without time zone DEFAULT now() NOT NULL',$line);
239 239
 
240
-    			// nuke ON UPDATE CURRENT_TIMESTAMP
241
-    			$line=preg_replace('/(\s*)on(\s*)update(\s*)CURRENT_TIMESTAMP/i','\\1',$line);
240
+                // nuke ON UPDATE CURRENT_TIMESTAMP
241
+                $line=preg_replace('/(\s*)on(\s*)update(\s*)CURRENT_TIMESTAMP/i','\\1',$line);
242 242
 
243
-    			// unique index(field1,field2)
244
-    			if (preg_match('/unique index\s*\((\w+\s*,\s*\w+)\)/i',$line))
245
-    			{
246
-    				$line=preg_replace('/unique index\s*\((\w+\s*,\s*\w+)\)/i','UNIQUE\(\\1\)',$line);
247
-    			}
243
+                // unique index(field1,field2)
244
+                if (preg_match('/unique index\s*\((\w+\s*,\s*\w+)\)/i',$line))
245
+                {
246
+                    $line=preg_replace('/unique index\s*\((\w+\s*,\s*\w+)\)/i','UNIQUE\(\\1\)',$line);
247
+                }
248 248
 
249
-    			// We remove end of requests "AFTER fieldxxx"
250
-    			$line=preg_replace('/\sAFTER [a-z0-9_]+/i','',$line);
249
+                // We remove end of requests "AFTER fieldxxx"
250
+                $line=preg_replace('/\sAFTER [a-z0-9_]+/i','',$line);
251 251
 
252
-    			// We remove start of requests "ALTER TABLE tablexxx" if this is a DROP INDEX
253
-    			$line=preg_replace('/ALTER TABLE [a-z0-9_]+\s+DROP INDEX/i','DROP INDEX',$line);
252
+                // We remove start of requests "ALTER TABLE tablexxx" if this is a DROP INDEX
253
+                $line=preg_replace('/ALTER TABLE [a-z0-9_]+\s+DROP INDEX/i','DROP INDEX',$line);
254 254
 
255 255
                 // Translate order to rename fields
256 256
                 if (preg_match('/ALTER TABLE ([a-z0-9_]+)\s+CHANGE(?: COLUMN)? ([a-z0-9_]+) ([a-z0-9_]+)(.*)$/i',$line,$reg))
257 257
                 {
258
-                	$line = "-- ".$line." replaced by --\n";
258
+                    $line = "-- ".$line." replaced by --\n";
259 259
                     $line.= "ALTER TABLE ".$reg[1]." RENAME COLUMN ".$reg[2]." TO ".$reg[3];
260 260
                 }
261 261
 
@@ -274,12 +274,12 @@  discard block
 block discarded – undo
274 274
                 }
275 275
 
276 276
                 // alter table add primary key (field1, field2 ...) -> We remove the primary key name not accepted by PostGreSQL
277
-    			// ALTER TABLE llx_dolibarr_modules ADD PRIMARY KEY pk_dolibarr_modules (numero, entity)
278
-    			if (preg_match('/ALTER\s+TABLE\s*(.*)\s*ADD\s+PRIMARY\s+KEY\s*(.*)\s*\((.*)$/i',$line,$reg))
279
-    			{
280
-    				$line = "-- ".$line." replaced by --\n";
281
-    				$line.= "ALTER TABLE ".$reg[1]." ADD PRIMARY KEY (".$reg[3];
282
-    			}
277
+                // ALTER TABLE llx_dolibarr_modules ADD PRIMARY KEY pk_dolibarr_modules (numero, entity)
278
+                if (preg_match('/ALTER\s+TABLE\s*(.*)\s*ADD\s+PRIMARY\s+KEY\s*(.*)\s*\((.*)$/i',$line,$reg))
279
+                {
280
+                    $line = "-- ".$line." replaced by --\n";
281
+                    $line.= "ALTER TABLE ".$reg[1]." ADD PRIMARY KEY (".$reg[3];
282
+                }
283 283
 
284 284
                 // Translate order to drop primary keys
285 285
                 // ALTER TABLE llx_dolibarr_modules DROP PRIMARY KEY pk_xxx
@@ -289,7 +289,7 @@  discard block
 block discarded – undo
289 289
                     $line.= "ALTER TABLE ".$reg[1]." DROP CONSTRAINT ".$reg[2];
290 290
                 }
291 291
 
292
-		        // Translate order to drop foreign keys
292
+                // Translate order to drop foreign keys
293 293
                 // ALTER TABLE llx_dolibarr_modules DROP FOREIGN KEY fk_xxx
294 294
                 if (preg_match('/ALTER\s+TABLE\s*(.*)\s*DROP\s+FOREIGN\s+KEY\s*(.*)$/i',$line,$reg))
295 295
                 {
@@ -306,15 +306,15 @@  discard block
 block discarded – undo
306 306
                 }
307 307
 
308 308
                 // alter table add [unique] [index] (field1, field2 ...)
309
-    			// ALTER TABLE llx_accountingaccount ADD INDEX idx_accountingaccount_fk_pcg_version (fk_pcg_version)
310
-    			if (preg_match('/ALTER\s+TABLE\s*(.*)\s*ADD\s+(UNIQUE INDEX|INDEX|UNIQUE)\s+(.*)\s*\(([\w,\s]+)\)/i',$line,$reg))
311
-    			{
312
-    				$fieldlist=$reg[4];
313
-    				$idxname=$reg[3];
314
-    				$tablename=$reg[1];
315
-    				$line = "-- ".$line." replaced by --\n";
316
-    				$line.= "CREATE ".(preg_match('/UNIQUE/',$reg[2])?'UNIQUE ':'')."INDEX ".$idxname." ON ".$tablename." (".$fieldlist.")";
317
-    			}
309
+                // ALTER TABLE llx_accountingaccount ADD INDEX idx_accountingaccount_fk_pcg_version (fk_pcg_version)
310
+                if (preg_match('/ALTER\s+TABLE\s*(.*)\s*ADD\s+(UNIQUE INDEX|INDEX|UNIQUE)\s+(.*)\s*\(([\w,\s]+)\)/i',$line,$reg))
311
+                {
312
+                    $fieldlist=$reg[4];
313
+                    $idxname=$reg[3];
314
+                    $tablename=$reg[1];
315
+                    $line = "-- ".$line." replaced by --\n";
316
+                    $line.= "CREATE ".(preg_match('/UNIQUE/',$reg[2])?'UNIQUE ':'')."INDEX ".$idxname." ON ".$tablename." (".$fieldlist.")";
317
+                }
318 318
             }
319 319
 
320 320
             // To have postgresql case sensitive
@@ -324,59 +324,59 @@  discard block
 block discarded – undo
324 324
             // Replace INSERT IGNORE into INSERT
325 325
             $line=preg_replace('/^INSERT IGNORE/','INSERT',$line);
326 326
 
327
-			// Delete using criteria on other table must not declare twice the deleted table
328
-			// DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
329
-			if (preg_match('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i',$line,$reg))
330
-			{
331
-				if ($reg[1] == $reg[2])	// If same table, we remove second one
332
-				{
333
-					$line=preg_replace('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i','DELETE FROM \\1 USING \\3', $line);
334
-				}
335
-			}
327
+            // Delete using criteria on other table must not declare twice the deleted table
328
+            // DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
329
+            if (preg_match('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i',$line,$reg))
330
+            {
331
+                if ($reg[1] == $reg[2])	// If same table, we remove second one
332
+                {
333
+                    $line=preg_replace('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i','DELETE FROM \\1 USING \\3', $line);
334
+                }
335
+            }
336 336
 
337
-			// Remove () in the tables in FROM if 1 table
338
-			$line=preg_replace('/FROM\s*\((([a-z_]+)\s+as\s+([a-z_]+)\s*)\)/i','FROM \\1',$line);
339
-			//print $line."\n";
337
+            // Remove () in the tables in FROM if 1 table
338
+            $line=preg_replace('/FROM\s*\((([a-z_]+)\s+as\s+([a-z_]+)\s*)\)/i','FROM \\1',$line);
339
+            //print $line."\n";
340 340
 
341
-			// Remove () in the tables in FROM if 2 table
342
-			$line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2',$line);
343
-			//print $line."\n";
341
+            // Remove () in the tables in FROM if 2 table
342
+            $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2',$line);
343
+            //print $line."\n";
344 344
 
345
-			// Remove () in the tables in FROM if 3 table
346
-			$line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3',$line);
347
-			//print $line."\n";
345
+            // Remove () in the tables in FROM if 3 table
346
+            $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3',$line);
347
+            //print $line."\n";
348 348
 
349
-			// Remove () in the tables in FROM if 4 table
350
-			$line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3, \\4',$line);
351
-			//print $line."\n";
349
+            // Remove () in the tables in FROM if 4 table
350
+            $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3, \\4',$line);
351
+            //print $line."\n";
352 352
 
353
-			// Remove () in the tables in FROM if 5 table
354
-			$line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3, \\4, \\5',$line);
355
-			//print $line."\n";
353
+            // Remove () in the tables in FROM if 5 table
354
+            $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3, \\4, \\5',$line);
355
+            //print $line."\n";
356 356
 
357
-			// Replace espacing \' by ''.
358
-			// By default we do not (should be already done by db->escape function if required
359
-			// except for sql insert in data file that are mysql escaped so we removed them to
360
-			// be compatible with standard_conforming_strings=on that considers \ as ordinary character).
361
-			if ($unescapeslashquot) $line=preg_replace("/\\\'/","''",$line);
357
+            // Replace espacing \' by ''.
358
+            // By default we do not (should be already done by db->escape function if required
359
+            // except for sql insert in data file that are mysql escaped so we removed them to
360
+            // be compatible with standard_conforming_strings=on that considers \ as ordinary character).
361
+            if ($unescapeslashquot) $line=preg_replace("/\\\'/","''",$line);
362 362
 
363
-			//print "type=".$type." newline=".$line."<br>\n";
364
-		}
363
+            //print "type=".$type." newline=".$line."<br>\n";
364
+        }
365 365
 
366
-		return $line;
367
-	}
366
+        return $line;
367
+    }
368 368
 
369 369
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
370 370
     /**
371 371
      *  Select a database
372 372
      *  Ici postgresql n'a aucune fonction equivalente de mysql_select_db
373 373
      *  On compare juste manuellement si la database choisie est bien celle activee par la connexion
374
-	 *
375
-	 *	@param	    string	$database	Name of database
376
-	 *	@return	    bool				true if OK, false if KO
377
-	 */
378
-	function select_db($database)
379
-	{
374
+     *
375
+     *	@param	    string	$database	Name of database
376
+     *	@return	    bool				true if OK, false if KO
377
+     */
378
+    function select_db($database)
379
+    {
380 380
         // phpcs:enable
381 381
         if ($database == $this->database_name) {
382 382
             return true;
@@ -385,85 +385,85 @@  discard block
 block discarded – undo
385 385
         }
386 386
     }
387 387
 
388
-	/**
389
-	 *	Connexion to server
390
-	 *
391
-	 *	@param	    string		$host		Database server host
392
-	 *	@param	    string		$login		Login
393
-	 *	@param	    string		$passwd		Password
394
-	 *	@param		string		$name		Name of database (not used for mysql, used for pgsql)
395
-	 *	@param		integer		$port		Port of database server
396
-	 *	@return		false|resource			Database access handler
397
-	 *	@see		close
398
-	 */
399
-	function connect($host, $login, $passwd, $name, $port=0)
400
-	{
401
-		// use pg_pconnect() instead of pg_connect() if you want to use persistent connection costing 1ms, instead of 30ms for non persistent
402
-
403
-		$this->db = false;
404
-
405
-		// connections parameters must be protected (only \ and ' according to pg_connect() manual)
406
-		$host = str_replace(array("\\", "'"), array("\\\\", "\\'"), $host);
407
-		$login = str_replace(array("\\", "'"), array("\\\\", "\\'"), $login);
408
-		$passwd = str_replace(array("\\", "'"), array("\\\\", "\\'"), $passwd);
409
-		$name = str_replace(array("\\", "'"), array("\\\\", "\\'"), $name);
410
-		$port = str_replace(array("\\", "'"), array("\\\\", "\\'"), $port);
411
-
412
-		if (! $name) $name="postgres";    // When try to connect using admin user
413
-
414
-		// try first Unix domain socket (local)
415
-		if ((! empty($host) && $host == "socket") && ! defined('NOLOCALSOCKETPGCONNECT'))
416
-		{
417
-			$con_string = "dbname='".$name."' user='".$login."' password='".$passwd."'";    // $name may be empty
418
-			$this->db = @pg_connect($con_string);
419
-		}
420
-
421
-		// if local connection failed or not requested, use TCP/IP
422
-		if (! $this->db)
423
-		{
424
-		    if (! $host) $host = "localhost";
425
-			if (! $port) $port = 5432;
426
-
427
-			$con_string = "host='".$host."' port='".$port."' dbname='".$name."' user='".$login."' password='".$passwd."'";
428
-			$this->db = @pg_connect($con_string);
429
-		}
430
-
431
-		// now we test if at least one connect method was a success
432
-		if ($this->db)
433
-		{
434
-			$this->database_name = $name;
435
-			pg_set_error_verbosity($this->db, PGSQL_ERRORS_VERBOSE);	// Set verbosity to max
436
-			pg_query($this->db, "set datestyle = 'ISO, YMD';");
437
-		}
438
-
439
-		return $this->db;
440
-	}
441
-
442
-	/**
443
-	 *	Return version of database server
444
-	 *
445
-	 *	@return	        string      Version string
446
-	 */
447
-	function getVersion()
448
-	{
449
-		$resql=$this->query('SHOW server_version');
450
-		if ($resql)
451
-		{
452
-		  $liste=$this->fetch_array($resql);
453
-		  return $liste['server_version'];
454
-		}
455
-		return '';
456
-	}
457
-
458
-	/**
459
-	 *	Return version of database client driver
460
-	 *
461
-	 *	@return	        string      Version string
462
-	 */
463
-	function getDriverInfo()
464
-	{
465
-		return 'pgsql php driver';
466
-	}
388
+    /**
389
+     *	Connexion to server
390
+     *
391
+     *	@param	    string		$host		Database server host
392
+     *	@param	    string		$login		Login
393
+     *	@param	    string		$passwd		Password
394
+     *	@param		string		$name		Name of database (not used for mysql, used for pgsql)
395
+     *	@param		integer		$port		Port of database server
396
+     *	@return		false|resource			Database access handler
397
+     *	@see		close
398
+     */
399
+    function connect($host, $login, $passwd, $name, $port=0)
400
+    {
401
+        // use pg_pconnect() instead of pg_connect() if you want to use persistent connection costing 1ms, instead of 30ms for non persistent
402
+
403
+        $this->db = false;
404
+
405
+        // connections parameters must be protected (only \ and ' according to pg_connect() manual)
406
+        $host = str_replace(array("\\", "'"), array("\\\\", "\\'"), $host);
407
+        $login = str_replace(array("\\", "'"), array("\\\\", "\\'"), $login);
408
+        $passwd = str_replace(array("\\", "'"), array("\\\\", "\\'"), $passwd);
409
+        $name = str_replace(array("\\", "'"), array("\\\\", "\\'"), $name);
410
+        $port = str_replace(array("\\", "'"), array("\\\\", "\\'"), $port);
411
+
412
+        if (! $name) $name="postgres";    // When try to connect using admin user
413
+
414
+        // try first Unix domain socket (local)
415
+        if ((! empty($host) && $host == "socket") && ! defined('NOLOCALSOCKETPGCONNECT'))
416
+        {
417
+            $con_string = "dbname='".$name."' user='".$login."' password='".$passwd."'";    // $name may be empty
418
+            $this->db = @pg_connect($con_string);
419
+        }
420
+
421
+        // if local connection failed or not requested, use TCP/IP
422
+        if (! $this->db)
423
+        {
424
+            if (! $host) $host = "localhost";
425
+            if (! $port) $port = 5432;
426
+
427
+            $con_string = "host='".$host."' port='".$port."' dbname='".$name."' user='".$login."' password='".$passwd."'";
428
+            $this->db = @pg_connect($con_string);
429
+        }
430
+
431
+        // now we test if at least one connect method was a success
432
+        if ($this->db)
433
+        {
434
+            $this->database_name = $name;
435
+            pg_set_error_verbosity($this->db, PGSQL_ERRORS_VERBOSE);	// Set verbosity to max
436
+            pg_query($this->db, "set datestyle = 'ISO, YMD';");
437
+        }
438
+
439
+        return $this->db;
440
+    }
441
+
442
+    /**
443
+     *	Return version of database server
444
+     *
445
+     *	@return	        string      Version string
446
+     */
447
+    function getVersion()
448
+    {
449
+        $resql=$this->query('SHOW server_version');
450
+        if ($resql)
451
+        {
452
+            $liste=$this->fetch_array($resql);
453
+            return $liste['server_version'];
454
+        }
455
+        return '';
456
+    }
457
+
458
+    /**
459
+     *	Return version of database client driver
460
+     *
461
+     *	@return	        string      Version string
462
+     */
463
+    function getDriverInfo()
464
+    {
465
+        return 'pgsql php driver';
466
+    }
467 467
 
468 468
     /**
469 469
      *  Close database connexion
@@ -475,99 +475,99 @@  discard block
 block discarded – undo
475 475
     {
476 476
         if ($this->db)
477 477
         {
478
-          if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
479
-          $this->connected=false;
480
-          return pg_close($this->db);
478
+            if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
479
+            $this->connected=false;
480
+            return pg_close($this->db);
481 481
         }
482 482
         return false;
483 483
     }
484 484
 
485
-	/**
486
-	 * Convert request to PostgreSQL syntax, execute it and return the resultset
487
-	 *
488
-	 * @param	string	$query			SQL query string
489
-	 * @param	int		$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).
485
+    /**
486
+     * Convert request to PostgreSQL syntax, execute it and return the resultset
487
+     *
488
+     * @param	string	$query			SQL query string
489
+     * @param	int		$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).
490 490
      * @param   string	$type           Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
491
-	 * @return	false|resource			Resultset of answer
492
-	 */
493
-	function query($query,$usesavepoint=0,$type='auto')
494
-	{
495
-		global $conf;
491
+     * @return	false|resource			Resultset of answer
492
+     */
493
+    function query($query,$usesavepoint=0,$type='auto')
494
+    {
495
+        global $conf;
496 496
 
497
-		$query = trim($query);
497
+        $query = trim($query);
498 498
 
499 499
         Debug::addMessage('SQL', 'PgSQL: ' . $query);
500 500
 
501 501
         // Convert MySQL syntax to PostgresSQL syntax
502 502
         $query=$this->convertSQLFromMysql($query,$type,($this->unescapeslashquot && $this->standard_conforming_strings));
503
-		//print "After convertSQLFromMysql:\n".$query."<br>\n";
504
-
505
-		if (! empty($conf->global->MAIN_DB_AUTOFIX_BAD_SQL_REQUEST))
506
-		{
507
-			// Fix bad formed requests. If request contains a date without quotes, we fix this but this should not occurs.
508
-			$loop=true;
509
-			while ($loop)
510
-			{
511
-				if (preg_match('/([^\'])([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9])/',$query))
512
-				{
513
-					$query=preg_replace('/([^\'])([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9])/','\\1\'\\2\'',$query);
514
-					dol_syslog("Warning: Bad formed request converted into ".$query,LOG_WARNING);
515
-				}
516
-				else $loop=false;
517
-			}
518
-		}
519
-
520
-		if ($usesavepoint && $this->transaction_opened)
521
-		{
522
-			@pg_query($this->db, 'SAVEPOINT mysavepoint');
523
-		}
524
-
525
-		if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
526
-
527
-		$ret = @pg_query($this->db, $query);
528
-
529
-		//print $query;
530
-		if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query)) // Si requete utilisateur, on la sauvegarde ainsi que son resultset
531
-		{
532
-			if (! $ret)
533
-			{
534
-			    if ($this->errno() != 'DB_ERROR_25P02')	// Do not overwrite errors if this is a consecutive error
535
-			    {
536
-    				$this->lastqueryerror = $query;
537
-    				$this->lasterror = $this->error();
538
-    				$this->lasterrno = $this->errno();
539
-
540
-    				if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);	// Log of request was not yet done previously
541
-					dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterror." (".$this->lasterrno.")", LOG_ERR);
542
-					dol_syslog(get_class($this)."::query SQL Error usesavepoint = ".$usesavepoint, LOG_ERR);
543
-			    }
544
-
545
-				if ($usesavepoint && $this->transaction_opened)	// Warning, after that errno will be erased
546
-				{
547
-					@pg_query($this->db, 'ROLLBACK TO SAVEPOINT mysavepoint');
548
-				}
549
-			}
550
-			$this->lastquery=$query;
551
-			$this->_results = $ret;
552
-		}
553
-
554
-		return $ret;
555
-	}
503
+        //print "After convertSQLFromMysql:\n".$query."<br>\n";
504
+
505
+        if (! empty($conf->global->MAIN_DB_AUTOFIX_BAD_SQL_REQUEST))
506
+        {
507
+            // Fix bad formed requests. If request contains a date without quotes, we fix this but this should not occurs.
508
+            $loop=true;
509
+            while ($loop)
510
+            {
511
+                if (preg_match('/([^\'])([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9])/',$query))
512
+                {
513
+                    $query=preg_replace('/([^\'])([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9])/','\\1\'\\2\'',$query);
514
+                    dol_syslog("Warning: Bad formed request converted into ".$query,LOG_WARNING);
515
+                }
516
+                else $loop=false;
517
+            }
518
+        }
519
+
520
+        if ($usesavepoint && $this->transaction_opened)
521
+        {
522
+            @pg_query($this->db, 'SAVEPOINT mysavepoint');
523
+        }
524
+
525
+        if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
526
+
527
+        $ret = @pg_query($this->db, $query);
528
+
529
+        //print $query;
530
+        if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query)) // Si requete utilisateur, on la sauvegarde ainsi que son resultset
531
+        {
532
+            if (! $ret)
533
+            {
534
+                if ($this->errno() != 'DB_ERROR_25P02')	// Do not overwrite errors if this is a consecutive error
535
+                {
536
+                    $this->lastqueryerror = $query;
537
+                    $this->lasterror = $this->error();
538
+                    $this->lasterrno = $this->errno();
539
+
540
+                    if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);	// Log of request was not yet done previously
541
+                    dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterror." (".$this->lasterrno.")", LOG_ERR);
542
+                    dol_syslog(get_class($this)."::query SQL Error usesavepoint = ".$usesavepoint, LOG_ERR);
543
+                }
544
+
545
+                if ($usesavepoint && $this->transaction_opened)	// Warning, after that errno will be erased
546
+                {
547
+                    @pg_query($this->db, 'ROLLBACK TO SAVEPOINT mysavepoint');
548
+                }
549
+            }
550
+            $this->lastquery=$query;
551
+            $this->_results = $ret;
552
+        }
553
+
554
+        return $ret;
555
+    }
556 556
 
557 557
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
558
-	/**
559
-	 *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
560
-	 *
561
-	 *	@param	resource	$resultset  Curseur de la requete voulue
562
-	 *	@return	false|object			Object result line or false if KO or end of cursor
563
-	 */
564
-	function fetch_object($resultset)
565
-	{
558
+    /**
559
+     *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
560
+     *
561
+     *	@param	resource	$resultset  Curseur de la requete voulue
562
+     *	@return	false|object			Object result line or false if KO or end of cursor
563
+     */
564
+    function fetch_object($resultset)
565
+    {
566 566
         // phpcs:enable
567 567
         // If resultset not provided, we take the last used by connexion
568
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
569
-		return pg_fetch_object($resultset);
570
-	}
568
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
569
+        return pg_fetch_object($resultset);
570
+    }
571 571
 
572 572
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
573 573
     /**
@@ -575,29 +575,29 @@  discard block
 block discarded – undo
575 575
      *
576 576
      *	@param	resource	$resultset  Resultset of request
577 577
      *	@return	false|array				Array
578
-	 */
579
-	function fetch_array($resultset)
580
-	{
578
+     */
579
+    function fetch_array($resultset)
580
+    {
581 581
         // phpcs:enable
582 582
         // If resultset not provided, we take the last used by connexion
583
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
584
-		return pg_fetch_array($resultset);
585
-	}
583
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
584
+        return pg_fetch_array($resultset);
585
+    }
586 586
 
587 587
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
588
-	/**
588
+    /**
589 589
      *	Return datas as an array
590 590
      *
591 591
      *	@param	resource	$resultset  Resultset of request
592 592
      *	@return	false|array				Array
593
-	 */
594
-	function fetch_row($resultset)
595
-	{
593
+     */
594
+    function fetch_row($resultset)
595
+    {
596 596
         // phpcs:enable
597
-		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
598
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
599
-		return pg_fetch_row($resultset);
600
-	}
597
+        // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
598
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
599
+        return pg_fetch_row($resultset);
600
+    }
601 601
 
602 602
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
603 603
     /**
@@ -607,725 +607,725 @@  discard block
 block discarded – undo
607 607
      *	@return int		    			Nb of lines, -1 on error
608 608
      *	@see    affected_rows
609 609
      */
610
-	function num_rows($resultset)
611
-	{
610
+    function num_rows($resultset)
611
+    {
612 612
         // phpcs:enable
613 613
         // If resultset not provided, we take the last used by connexion
614
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
615
-		return pg_num_rows($resultset);
616
-	}
614
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
615
+        return pg_num_rows($resultset);
616
+    }
617 617
 
618 618
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
619
-	/**
620
-	 * Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
621
-	 *
622
-	 * @param	resource	$resultset  Result set of request
623
-	 * @return  int		    			Nb of lines
624
-	 * @see 	num_rows
625
-	 */
626
-	function affected_rows($resultset)
627
-	{
619
+    /**
620
+     * Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
621
+     *
622
+     * @param	resource	$resultset  Result set of request
623
+     * @return  int		    			Nb of lines
624
+     * @see 	num_rows
625
+     */
626
+    function affected_rows($resultset)
627
+    {
628 628
         // phpcs:enable
629 629
         // If resultset not provided, we take the last used by connexion
630
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
631
-		// pgsql necessite un resultset pour cette fonction contrairement
632
-		// a mysql qui prend un link de base
633
-		return pg_affected_rows($resultset);
634
-	}
635
-
636
-
637
-	/**
638
-	 * Libere le dernier resultset utilise sur cette connexion
639
-	 *
640
-	 * @param	resource	$resultset  Result set of request
641
-	 * @return	void
642
-	 */
643
-	function free($resultset=null)
644
-	{
630
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
631
+        // pgsql necessite un resultset pour cette fonction contrairement
632
+        // a mysql qui prend un link de base
633
+        return pg_affected_rows($resultset);
634
+    }
635
+
636
+
637
+    /**
638
+     * Libere le dernier resultset utilise sur cette connexion
639
+     *
640
+     * @param	resource	$resultset  Result set of request
641
+     * @return	void
642
+     */
643
+    function free($resultset=null)
644
+    {
645 645
         // If resultset not provided, we take the last used by connexion
646
-		if (! is_resource($resultset)) { $resultset=$this->_results; }
647
-		// Si resultset en est un, on libere la memoire
648
-		if (is_resource($resultset)) pg_free_result($resultset);
649
-	}
646
+        if (! is_resource($resultset)) { $resultset=$this->_results; }
647
+        // Si resultset en est un, on libere la memoire
648
+        if (is_resource($resultset)) pg_free_result($resultset);
649
+    }
650 650
 
651 651
 
652
-	/**
652
+    /**
653 653
      *	Define limits and offset of request
654 654
      *
655 655
      *	@param	int		$limit      Maximum number of lines returned (-1=conf->liste_limit, 0=no limit)
656 656
      *	@param	int		$offset     Numero of line from where starting fetch
657 657
      *	@return	string      		String with SQL syntax to add a limit and offset
658
-	 */
659
-	function plimit($limit=0,$offset=0)
660
-	{
661
-		global $conf;
658
+     */
659
+    function plimit($limit=0,$offset=0)
660
+    {
661
+        global $conf;
662 662
         if (empty($limit)) return "";
663
-		if ($limit < 0) $limit=$conf->liste_limit;
664
-		if ($offset > 0) return " LIMIT ".$limit." OFFSET ".$offset." ";
665
-		else return " LIMIT $limit ";
666
-	}
667
-
668
-
669
-	/**
670
-	 *   Escape a string to insert data
671
-	 *
672
-	 *   @param		string	$stringtoencode		String to escape
673
-	 *   @return	string						String escaped
674
-	 */
675
-	function escape($stringtoencode)
676
-	{
677
-		return pg_escape_string($stringtoencode);
678
-	}
663
+        if ($limit < 0) $limit=$conf->liste_limit;
664
+        if ($offset > 0) return " LIMIT ".$limit." OFFSET ".$offset." ";
665
+        else return " LIMIT $limit ";
666
+    }
667
+
668
+
669
+    /**
670
+     *   Escape a string to insert data
671
+     *
672
+     *   @param		string	$stringtoencode		String to escape
673
+     *   @return	string						String escaped
674
+     */
675
+    function escape($stringtoencode)
676
+    {
677
+        return pg_escape_string($stringtoencode);
678
+    }
679
+
680
+    /**
681
+     *   Convert (by PHP) a GM Timestamp date into a GM string date to insert into a date field.
682
+     *   Function to use to build INSERT, UPDATE or WHERE predica
683
+     *
684
+     *   @param	    string	$param      Date TMS to convert
685
+     *   @return	string   			Date in a string YYYY-MM-DD HH:MM:SS
686
+     */
687
+    function idate($param)
688
+    {
689
+        return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
690
+    }
679 691
 
680 692
     /**
681
-	 *   Convert (by PHP) a GM Timestamp date into a GM string date to insert into a date field.
682
-	 *   Function to use to build INSERT, UPDATE or WHERE predica
683
-	 *
684
-	 *   @param	    string	$param      Date TMS to convert
685
-	 *   @return	string   			Date in a string YYYY-MM-DD HH:MM:SS
686
-	 */
687
-	function idate($param)
688
-	{
689
-		return dol_print_date($param,"%Y-%m-%d %H:%M:%S");
690
-	}
691
-
692
-	/**
693 693
      *  Format a SQL IF
694 694
      *
695
-	 *  @param	string	$test           Test string (example: 'cd.statut=0', 'field IS NULL')
696
-	 *  @param	string	$resok          resultat si test egal
697
-	 *  @param	string	$resko          resultat si test non egal
698
-	 *  @return	string          		chaine formate SQL
699
-	 */
700
-	function ifsql($test,$resok,$resko)
701
-	{
702
-		return '(CASE WHEN '.$test.' THEN '.$resok.' ELSE '.$resko.' END)';
703
-	}
704
-
705
-	/**
706
-	 * Renvoie le code erreur generique de l'operation precedente.
707
-	 *
708
-	 * @return	string		Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
709
-	 */
710
-	function errno()
711
-	{
712
-		if (! $this->connected) {
713
-			// Si il y a eu echec de connexion, $this->db n'est pas valide.
714
-			return 'DB_ERROR_FAILED_TO_CONNECT';
715
-		}
716
-		else {
717
-			// Constants to convert error code to a generic Dolibarr error code
718
-			$errorcode_map = array(
719
-			1004 => 'DB_ERROR_CANNOT_CREATE',
720
-			1005 => 'DB_ERROR_CANNOT_CREATE',
721
-			1006 => 'DB_ERROR_CANNOT_CREATE',
722
-			1007 => 'DB_ERROR_ALREADY_EXISTS',
723
-			1008 => 'DB_ERROR_CANNOT_DROP',
724
-			1025 => 'DB_ERROR_NO_FOREIGN_KEY_TO_DROP',
725
-			1044 => 'DB_ERROR_ACCESSDENIED',
726
-			1046 => 'DB_ERROR_NODBSELECTED',
727
-			1048 => 'DB_ERROR_CONSTRAINT',
728
-			'42P07' => 'DB_ERROR_TABLE_OR_KEY_ALREADY_EXISTS',
729
-			'42703' => 'DB_ERROR_NOSUCHFIELD',
730
-			1060 => 'DB_ERROR_COLUMN_ALREADY_EXISTS',
731
-			42701=> 'DB_ERROR_COLUMN_ALREADY_EXISTS',
732
-			'42710' => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
733
-			'23505' => 'DB_ERROR_RECORD_ALREADY_EXISTS',
734
-			'42704' => 'DB_ERROR_NO_INDEX_TO_DROP',		// May also be Type xxx does not exists
735
-			'42601' => 'DB_ERROR_SYNTAX',
736
-			'42P16' => 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS',
737
-			1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
738
-			1091 => 'DB_ERROR_NOSUCHFIELD',
739
-			1100 => 'DB_ERROR_NOT_LOCKED',
740
-			1136 => 'DB_ERROR_VALUE_COUNT_ON_ROW',
741
-			'42P01' => 'DB_ERROR_NOSUCHTABLE',
742
-			'23503' => 'DB_ERROR_NO_PARENT',
743
-			1217 => 'DB_ERROR_CHILD_EXISTS',
744
-			1451 => 'DB_ERROR_CHILD_EXISTS',
745
-			'42P04' => 'DB_DATABASE_ALREADY_EXISTS'
746
-			);
747
-
748
-			$errorlabel=pg_last_error($this->db);
749
-			$errorcode='';
750
-			if (preg_match('/: *([0-9P]+):/',$errorlabel,$reg))
751
-			{
752
-				$errorcode=$reg[1];
753
-				if (isset($errorcode_map[$errorcode]))
754
-				{
755
-					return $errorcode_map[$errorcode];
756
-				}
757
-			}
758
-			$errno=$errorcode?$errorcode:$errorlabel;
759
-			return ($errno?'DB_ERROR_'.$errno:'0');
760
-		}
761
-		//                '/(Table does not exist\.|Relation [\"\'].*[\"\'] does not exist|sequence does not exist|class ".+" not found)$/' => 'DB_ERROR_NOSUCHTABLE',
762
-		//                '/table [\"\'].*[\"\'] does not exist/' => 'DB_ERROR_NOSUCHTABLE',
763
-		//                '/Relation [\"\'].*[\"\'] already exists|Cannot insert a duplicate key into (a )?unique index.*/'      => 'DB_ERROR_RECORD_ALREADY_EXISTS',
764
-		//                '/divide by zero$/'                     => 'DB_ERROR_DIVZERO',
765
-		//                '/pg_atoi: error in .*: can\'t parse /' => 'DB_ERROR_INVALID_NUMBER',
766
-		//                '/ttribute [\"\'].*[\"\'] not found$|Relation [\"\'].*[\"\'] does not have attribute [\"\'].*[\"\']/' => 'DB_ERROR_NOSUCHFIELD',
767
-		//                '/parser: parse error at or near \"/'   => 'DB_ERROR_SYNTAX',
768
-		//                '/referential integrity violation/'     => 'DB_ERROR_CONSTRAINT'
769
-	}
770
-
771
-	/**
772
-	 * Renvoie le texte de l'erreur pgsql de l'operation precedente
773
-	 *
774
-	 * @return	string		Error text
775
-	 */
776
-	function error()
777
-	{
778
-		return pg_last_error($this->db);
779
-	}
695
+     *  @param	string	$test           Test string (example: 'cd.statut=0', 'field IS NULL')
696
+     *  @param	string	$resok          resultat si test egal
697
+     *  @param	string	$resko          resultat si test non egal
698
+     *  @return	string          		chaine formate SQL
699
+     */
700
+    function ifsql($test,$resok,$resko)
701
+    {
702
+        return '(CASE WHEN '.$test.' THEN '.$resok.' ELSE '.$resko.' END)';
703
+    }
704
+
705
+    /**
706
+     * Renvoie le code erreur generique de l'operation precedente.
707
+     *
708
+     * @return	string		Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
709
+     */
710
+    function errno()
711
+    {
712
+        if (! $this->connected) {
713
+            // Si il y a eu echec de connexion, $this->db n'est pas valide.
714
+            return 'DB_ERROR_FAILED_TO_CONNECT';
715
+        }
716
+        else {
717
+            // Constants to convert error code to a generic Dolibarr error code
718
+            $errorcode_map = array(
719
+            1004 => 'DB_ERROR_CANNOT_CREATE',
720
+            1005 => 'DB_ERROR_CANNOT_CREATE',
721
+            1006 => 'DB_ERROR_CANNOT_CREATE',
722
+            1007 => 'DB_ERROR_ALREADY_EXISTS',
723
+            1008 => 'DB_ERROR_CANNOT_DROP',
724
+            1025 => 'DB_ERROR_NO_FOREIGN_KEY_TO_DROP',
725
+            1044 => 'DB_ERROR_ACCESSDENIED',
726
+            1046 => 'DB_ERROR_NODBSELECTED',
727
+            1048 => 'DB_ERROR_CONSTRAINT',
728
+            '42P07' => 'DB_ERROR_TABLE_OR_KEY_ALREADY_EXISTS',
729
+            '42703' => 'DB_ERROR_NOSUCHFIELD',
730
+            1060 => 'DB_ERROR_COLUMN_ALREADY_EXISTS',
731
+            42701=> 'DB_ERROR_COLUMN_ALREADY_EXISTS',
732
+            '42710' => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
733
+            '23505' => 'DB_ERROR_RECORD_ALREADY_EXISTS',
734
+            '42704' => 'DB_ERROR_NO_INDEX_TO_DROP',		// May also be Type xxx does not exists
735
+            '42601' => 'DB_ERROR_SYNTAX',
736
+            '42P16' => 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS',
737
+            1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
738
+            1091 => 'DB_ERROR_NOSUCHFIELD',
739
+            1100 => 'DB_ERROR_NOT_LOCKED',
740
+            1136 => 'DB_ERROR_VALUE_COUNT_ON_ROW',
741
+            '42P01' => 'DB_ERROR_NOSUCHTABLE',
742
+            '23503' => 'DB_ERROR_NO_PARENT',
743
+            1217 => 'DB_ERROR_CHILD_EXISTS',
744
+            1451 => 'DB_ERROR_CHILD_EXISTS',
745
+            '42P04' => 'DB_DATABASE_ALREADY_EXISTS'
746
+            );
747
+
748
+            $errorlabel=pg_last_error($this->db);
749
+            $errorcode='';
750
+            if (preg_match('/: *([0-9P]+):/',$errorlabel,$reg))
751
+            {
752
+                $errorcode=$reg[1];
753
+                if (isset($errorcode_map[$errorcode]))
754
+                {
755
+                    return $errorcode_map[$errorcode];
756
+                }
757
+            }
758
+            $errno=$errorcode?$errorcode:$errorlabel;
759
+            return ($errno?'DB_ERROR_'.$errno:'0');
760
+        }
761
+        //                '/(Table does not exist\.|Relation [\"\'].*[\"\'] does not exist|sequence does not exist|class ".+" not found)$/' => 'DB_ERROR_NOSUCHTABLE',
762
+        //                '/table [\"\'].*[\"\'] does not exist/' => 'DB_ERROR_NOSUCHTABLE',
763
+        //                '/Relation [\"\'].*[\"\'] already exists|Cannot insert a duplicate key into (a )?unique index.*/'      => 'DB_ERROR_RECORD_ALREADY_EXISTS',
764
+        //                '/divide by zero$/'                     => 'DB_ERROR_DIVZERO',
765
+        //                '/pg_atoi: error in .*: can\'t parse /' => 'DB_ERROR_INVALID_NUMBER',
766
+        //                '/ttribute [\"\'].*[\"\'] not found$|Relation [\"\'].*[\"\'] does not have attribute [\"\'].*[\"\']/' => 'DB_ERROR_NOSUCHFIELD',
767
+        //                '/parser: parse error at or near \"/'   => 'DB_ERROR_SYNTAX',
768
+        //                '/referential integrity violation/'     => 'DB_ERROR_CONSTRAINT'
769
+    }
770
+
771
+    /**
772
+     * Renvoie le texte de l'erreur pgsql de l'operation precedente
773
+     *
774
+     * @return	string		Error text
775
+     */
776
+    function error()
777
+    {
778
+        return pg_last_error($this->db);
779
+    }
780 780
 
781 781
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
782
-	/**
783
-	 * Get last ID after an insert INSERT
784
-	 *
785
-	 * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
786
-	 * @param	string	$fieldid	Field name
787
-	 * @return  string     			Id of row
788
-	 */
789
-	function last_insert_id($tab,$fieldid='rowid')
790
-	{
782
+    /**
783
+     * Get last ID after an insert INSERT
784
+     *
785
+     * @param   string	$tab    	Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
786
+     * @param	string	$fieldid	Field name
787
+     * @return  string     			Id of row
788
+     */
789
+    function last_insert_id($tab,$fieldid='rowid')
790
+    {
791 791
         // phpcs:enable
792
-		//$result = pg_query($this->db,"SELECT MAX(".$fieldid.") FROM ".$tab);
793
-		$result = pg_query($this->db,"SELECT currval('".$tab."_".$fieldid."_seq')");
794
-		if (! $result)
795
-		{
796
-			print pg_last_error($this->db);
797
-			exit;
798
-		}
799
-		//$nbre = pg_num_rows($result);
800
-		$row = pg_fetch_result($result,0,0);
801
-		return $row;
802
-	}
803
-
804
-	/**
792
+        //$result = pg_query($this->db,"SELECT MAX(".$fieldid.") FROM ".$tab);
793
+        $result = pg_query($this->db,"SELECT currval('".$tab."_".$fieldid."_seq')");
794
+        if (! $result)
795
+        {
796
+            print pg_last_error($this->db);
797
+            exit;
798
+        }
799
+        //$nbre = pg_num_rows($result);
800
+        $row = pg_fetch_result($result,0,0);
801
+        return $row;
802
+    }
803
+
804
+    /**
805 805
      *  Encrypt sensitive data in database
806 806
      *  Warning: This function includes the escape, so it must use direct value
807 807
      *
808 808
      *  @param  string  $fieldorvalue   Field name or value to encrypt
809 809
      *  @param	int		$withQuotes     Return string with quotes
810 810
      *  @return string          		XXX(field) or XXX('value') or field or 'value'
811
-	 */
812
-	function encrypt($fieldorvalue, $withQuotes=0)
813
-	{
814
-		global $conf;
811
+     */
812
+    function encrypt($fieldorvalue, $withQuotes=0)
813
+    {
814
+        global $conf;
815 815
 
816
-		// Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
817
-		$cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
816
+        // Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
817
+        $cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
818 818
 
819
-		//Encryption key
820
-		$cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
819
+        //Encryption key
820
+        $cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
821 821
 
822
-		$return = $fieldorvalue;
823
-		return ($withQuotes?"'":"").$this->escape($return).($withQuotes?"'":"");
824
-	}
822
+        $return = $fieldorvalue;
823
+        return ($withQuotes?"'":"").$this->escape($return).($withQuotes?"'":"");
824
+    }
825 825
 
826 826
 
827
-	/**
828
-	 *	Decrypt sensitive data in database
829
-	 *
830
-	 *	@param	int		$value			Value to decrypt
831
-	 * 	@return	string					Decrypted value if used
832
-	 */
833
-	function decrypt($value)
834
-	{
835
-		global $conf;
827
+    /**
828
+     *	Decrypt sensitive data in database
829
+     *
830
+     *	@param	int		$value			Value to decrypt
831
+     * 	@return	string					Decrypted value if used
832
+     */
833
+    function decrypt($value)
834
+    {
835
+        global $conf;
836 836
 
837
-		// Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
838
-		$cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
837
+        // Type of encryption (2: AES (recommended), 1: DES , 0: no encryption)
838
+        $cryptType = ($conf->db->dolibarr_main_db_encryption?$conf->db->dolibarr_main_db_encryption:0);
839 839
 
840
-		//Encryption key
841
-		$cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
840
+        //Encryption key
841
+        $cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey)?$conf->db->dolibarr_main_db_cryptkey:'');
842 842
 
843
-		$return = $value;
844
-		return $return;
845
-	}
843
+        $return = $value;
844
+        return $return;
845
+    }
846 846
 
847 847
 
848 848
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
849
-	/**
850
-	 * Return connexion ID
851
-	 *
852
-	 * @return	        string      Id connexion
853
-	 */
854
-	function DDLGetConnectId()
855
-	{
849
+    /**
850
+     * Return connexion ID
851
+     *
852
+     * @return	        string      Id connexion
853
+     */
854
+    function DDLGetConnectId()
855
+    {
856 856
         // phpcs:enable
857
-		return '?';
858
-	}
857
+        return '?';
858
+    }
859 859
 
860 860
 
861 861
 
862 862
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
863
-	/**
864
-	 *	Create a new database
865
-	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
866
-	 *	We force to create database with charset this->forcecharset and collate this->forcecollate
867
-	 *
868
-	 *	@param	string	$database		Database name to create
869
-	 * 	@param	string	$charset		Charset used to store data
870
-	 * 	@param	string	$collation		Charset used to sort data
871
-	 * 	@param	string	$owner			Username of database owner
872
-	 * 	@return	false|resource				resource defined if OK, null if KO
873
-	 */
874
-	function DDLCreateDb($database,$charset='',$collation='',$owner='')
875
-	{
863
+    /**
864
+     *	Create a new database
865
+     *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
866
+     *	We force to create database with charset this->forcecharset and collate this->forcecollate
867
+     *
868
+     *	@param	string	$database		Database name to create
869
+     * 	@param	string	$charset		Charset used to store data
870
+     * 	@param	string	$collation		Charset used to sort data
871
+     * 	@param	string	$owner			Username of database owner
872
+     * 	@return	false|resource				resource defined if OK, null if KO
873
+     */
874
+    function DDLCreateDb($database,$charset='',$collation='',$owner='')
875
+    {
876 876
         // phpcs:enable
877
-	    if (empty($charset))   $charset=$this->forcecharset;
878
-		if (empty($collation)) $collation=$this->forcecollate;
877
+        if (empty($charset))   $charset=$this->forcecharset;
878
+        if (empty($collation)) $collation=$this->forcecollate;
879 879
 
880
-		// Test charset match LC_TYPE (pgsql error otherwise)
881
-		//print $charset.' '.setlocale(LC_CTYPE,'0'); exit;
880
+        // Test charset match LC_TYPE (pgsql error otherwise)
881
+        //print $charset.' '.setlocale(LC_CTYPE,'0'); exit;
882 882
 
883
-		$sql='CREATE DATABASE "'.$database.'" OWNER "'.$owner.'" ENCODING \''.$charset.'\'';
884
-		dol_syslog($sql,LOG_DEBUG);
885
-		$ret=$this->query($sql);
886
-		return $ret;
887
-	}
883
+        $sql='CREATE DATABASE "'.$database.'" OWNER "'.$owner.'" ENCODING \''.$charset.'\'';
884
+        dol_syslog($sql,LOG_DEBUG);
885
+        $ret=$this->query($sql);
886
+        return $ret;
887
+    }
888 888
 
889 889
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
890
-	/**
891
-	 *  List tables into a database
892
-	 *
893
-	 *  @param	string		$database	Name of database
894
-	 *  @param	string		$table		Name of table filter ('xxx%')
895
-	 *  @return	array					List of tables in an array
896
-	 */
897
-	function DDLListTables($database, $table='')
890
+    /**
891
+     *  List tables into a database
892
+     *
893
+     *  @param	string		$database	Name of database
894
+     *  @param	string		$table		Name of table filter ('xxx%')
895
+     *  @return	array					List of tables in an array
896
+     */
897
+    function DDLListTables($database, $table='')
898 898
     {
899 899
         // phpcs:enable
900
-		$listtables=array();
900
+        $listtables=array();
901 901
 
902
-		$like = '';
903
-		if ($table) $like = " AND table_name LIKE '".$table."'";
904
-		$result = pg_query($this->db, "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'".$like." ORDER BY table_name");
902
+        $like = '';
903
+        if ($table) $like = " AND table_name LIKE '".$table."'";
904
+        $result = pg_query($this->db, "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'".$like." ORDER BY table_name");
905 905
         if ($result)
906 906
         {
907
-    		while($row = $this->fetch_row($result))
908
-    		{
909
-    			$listtables[] = $row[0];
910
-    		}
907
+            while($row = $this->fetch_row($result))
908
+            {
909
+                $listtables[] = $row[0];
910
+            }
911 911
         }
912
-		return $listtables;
913
-	}
912
+        return $listtables;
913
+    }
914 914
 
915 915
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
916
-	/**
917
-	 *	List information of columns into a table.
918
-	 *
919
-	 *	@param	string	$table		Name of table
920
-	 *	@return	array				Tableau des informations des champs de la table
921
-	 *
922
-	 */
923
-	function DDLInfoTable($table)
924
-	{
916
+    /**
917
+     *	List information of columns into a table.
918
+     *
919
+     *	@param	string	$table		Name of table
920
+     *	@return	array				Tableau des informations des champs de la table
921
+     *
922
+     */
923
+    function DDLInfoTable($table)
924
+    {
925 925
         // phpcs:enable
926
-		$infotables=array();
927
-
928
-		$sql="SELECT ";
929
-		$sql.="	infcol.column_name as \"Column\",";
930
-		$sql.="	CASE WHEN infcol.character_maximum_length IS NOT NULL THEN infcol.udt_name || '('||infcol.character_maximum_length||')'";
931
-		$sql.="		ELSE infcol.udt_name";
932
-		$sql.="	END as \"Type\",";
933
-		$sql.="	infcol.collation_name as \"Collation\",";
934
-		$sql.="	infcol.is_nullable as \"Null\",";
935
-		$sql.="	'' as \"Key\",";
936
-		$sql.="	infcol.column_default as \"Default\",";
937
-		$sql.="	'' as \"Extra\",";
938
-		$sql.="	'' as \"Privileges\"";
939
-		$sql.="	FROM information_schema.columns infcol";
940
-		$sql.="	WHERE table_schema='public' ";
941
-		$sql.="	AND table_name='".$table."'";
942
-		$sql.="	ORDER BY ordinal_position;";
943
-
944
-		dol_syslog($sql,LOG_DEBUG);
945
-		$result = $this->query($sql);
946
-		if ($result)
947
-		{
948
-    		 while($row = $this->fetch_row($result))
949
-    		 {
950
-    			$infotables[] = $row;
951
-    		 }
952
-		}
926
+        $infotables=array();
927
+
928
+        $sql="SELECT ";
929
+        $sql.="	infcol.column_name as \"Column\",";
930
+        $sql.="	CASE WHEN infcol.character_maximum_length IS NOT NULL THEN infcol.udt_name || '('||infcol.character_maximum_length||')'";
931
+        $sql.="		ELSE infcol.udt_name";
932
+        $sql.="	END as \"Type\",";
933
+        $sql.="	infcol.collation_name as \"Collation\",";
934
+        $sql.="	infcol.is_nullable as \"Null\",";
935
+        $sql.="	'' as \"Key\",";
936
+        $sql.="	infcol.column_default as \"Default\",";
937
+        $sql.="	'' as \"Extra\",";
938
+        $sql.="	'' as \"Privileges\"";
939
+        $sql.="	FROM information_schema.columns infcol";
940
+        $sql.="	WHERE table_schema='public' ";
941
+        $sql.="	AND table_name='".$table."'";
942
+        $sql.="	ORDER BY ordinal_position;";
943
+
944
+        dol_syslog($sql,LOG_DEBUG);
945
+        $result = $this->query($sql);
946
+        if ($result)
947
+        {
948
+                while($row = $this->fetch_row($result))
949
+                {
950
+                $infotables[] = $row;
951
+                }
952
+        }
953 953
         return $infotables;
954
-	}
954
+    }
955 955
 
956 956
 
957 957
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
958
-	/**
959
-	 *	Create a table into database
960
-	 *
961
-	 *	@param	    string	$table 			Nom de la table
962
-	 *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
963
-	 *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
964
-	 *	@param	    string	$type 			Type de la table
965
-	 *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
966
-	 *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
967
-	 *	@param	    array	$keys 			Tableau des champs cles noms => valeur
968
-	 *	@return	    int						<0 if KO, >=0 if OK
969
-	 */
970
-	function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
971
-	{
958
+    /**
959
+     *	Create a table into database
960
+     *
961
+     *	@param	    string	$table 			Nom de la table
962
+     *	@param	    array	$fields 		Tableau associatif [nom champ][tableau des descriptions]
963
+     *	@param	    string	$primary_key 	Nom du champ qui sera la clef primaire
964
+     *	@param	    string	$type 			Type de la table
965
+     *	@param	    array	$unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
966
+     *	@param	    array	$fulltext_keys	Tableau des Nom de champs qui seront indexes en fulltext
967
+     *	@param	    array	$keys 			Tableau des champs cles noms => valeur
968
+     *	@return	    int						<0 if KO, >=0 if OK
969
+     */
970
+    function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
971
+    {
972 972
         // phpcs:enable
973
-		// FIXME: $fulltext_keys parameter is unused
974
-
975
-		// cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
976
-		// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
977
-		$sql = "create table ".$table."(";
978
-		$i=0;
979
-		foreach($fields as $field_name => $field_desc)
980
-		{
981
-			$sqlfields[$i] = $field_name." ";
982
-			$sqlfields[$i]  .= $field_desc['type'];
983
-			if( preg_match("/^[^\s]/i",$field_desc['value']))
984
-			$sqlfields[$i]  .= "(".$field_desc['value'].")";
985
-			else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
986
-			$sqlfields[$i]  .= " ".$field_desc['attribute'];
987
-			else if( preg_match("/^[^\s]/i",$field_desc['default']))
988
-			{
989
-				if(preg_match("/null/i",$field_desc['default']))
990
-				$sqlfields[$i]  .= " default ".$field_desc['default'];
991
-				else
992
-				$sqlfields[$i]  .= " default '".$field_desc['default']."'";
993
-			}
994
-			else if( preg_match("/^[^\s]/i",$field_desc['null']))
995
-			$sqlfields[$i]  .= " ".$field_desc['null'];
996
-
997
-			else if( preg_match("/^[^\s]/i",$field_desc['extra']))
998
-			$sqlfields[$i]  .= " ".$field_desc['extra'];
999
-			$i++;
1000
-		}
1001
-		if($primary_key != "")
1002
-		$pk = "primary key(".$primary_key.")";
1003
-
1004
-		if(is_array($unique_keys))
1005
-		{
1006
-			$i = 0;
1007
-			foreach($unique_keys as $key => $value)
1008
-			{
1009
-				$sqluq[$i] = "UNIQUE KEY '".$key."' ('".$value."')";
1010
-				$i++;
1011
-			}
1012
-		}
1013
-		if(is_array($keys))
1014
-		{
1015
-			$i = 0;
1016
-			foreach($keys as $key => $value)
1017
-			{
1018
-				$sqlk[$i] = "KEY ".$key." (".$value.")";
1019
-				$i++;
1020
-			}
1021
-		}
1022
-		$sql .= implode(',',$sqlfields);
1023
-		if($primary_key != "")
1024
-		$sql .= ",".$pk;
1025
-		if(is_array($unique_keys))
1026
-		$sql .= ",".implode(',',$sqluq);
1027
-		if(is_array($keys))
1028
-		$sql .= ",".implode(',',$sqlk);
1029
-		$sql .=") type=".$type;
1030
-
1031
-		dol_syslog($sql,LOG_DEBUG);
1032
-		if(! $this->query($sql))
1033
-		return -1;
1034
-		else
1035
-		return 1;
1036
-	}
973
+        // FIXME: $fulltext_keys parameter is unused
974
+
975
+        // cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
976
+        // ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
977
+        $sql = "create table ".$table."(";
978
+        $i=0;
979
+        foreach($fields as $field_name => $field_desc)
980
+        {
981
+            $sqlfields[$i] = $field_name." ";
982
+            $sqlfields[$i]  .= $field_desc['type'];
983
+            if( preg_match("/^[^\s]/i",$field_desc['value']))
984
+            $sqlfields[$i]  .= "(".$field_desc['value'].")";
985
+            else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
986
+            $sqlfields[$i]  .= " ".$field_desc['attribute'];
987
+            else if( preg_match("/^[^\s]/i",$field_desc['default']))
988
+            {
989
+                if(preg_match("/null/i",$field_desc['default']))
990
+                $sqlfields[$i]  .= " default ".$field_desc['default'];
991
+                else
992
+                $sqlfields[$i]  .= " default '".$field_desc['default']."'";
993
+            }
994
+            else if( preg_match("/^[^\s]/i",$field_desc['null']))
995
+            $sqlfields[$i]  .= " ".$field_desc['null'];
996
+
997
+            else if( preg_match("/^[^\s]/i",$field_desc['extra']))
998
+            $sqlfields[$i]  .= " ".$field_desc['extra'];
999
+            $i++;
1000
+        }
1001
+        if($primary_key != "")
1002
+        $pk = "primary key(".$primary_key.")";
1003
+
1004
+        if(is_array($unique_keys))
1005
+        {
1006
+            $i = 0;
1007
+            foreach($unique_keys as $key => $value)
1008
+            {
1009
+                $sqluq[$i] = "UNIQUE KEY '".$key."' ('".$value."')";
1010
+                $i++;
1011
+            }
1012
+        }
1013
+        if(is_array($keys))
1014
+        {
1015
+            $i = 0;
1016
+            foreach($keys as $key => $value)
1017
+            {
1018
+                $sqlk[$i] = "KEY ".$key." (".$value.")";
1019
+                $i++;
1020
+            }
1021
+        }
1022
+        $sql .= implode(',',$sqlfields);
1023
+        if($primary_key != "")
1024
+        $sql .= ",".$pk;
1025
+        if(is_array($unique_keys))
1026
+        $sql .= ",".implode(',',$sqluq);
1027
+        if(is_array($keys))
1028
+        $sql .= ",".implode(',',$sqlk);
1029
+        $sql .=") type=".$type;
1030
+
1031
+        dol_syslog($sql,LOG_DEBUG);
1032
+        if(! $this->query($sql))
1033
+        return -1;
1034
+        else
1035
+        return 1;
1036
+    }
1037 1037
 
1038 1038
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1039
-	/**
1040
-	 *	Drop a table into database
1041
-	 *
1042
-	 *	@param	    string	$table 			Name of table
1043
-	 *	@return	    int						<0 if KO, >=0 if OK
1044
-	 */
1045
-	function DDLDropTable($table)
1046
-	{
1039
+    /**
1040
+     *	Drop a table into database
1041
+     *
1042
+     *	@param	    string	$table 			Name of table
1043
+     *	@return	    int						<0 if KO, >=0 if OK
1044
+     */
1045
+    function DDLDropTable($table)
1046
+    {
1047 1047
         // phpcs:enable
1048
-		$sql = "DROP TABLE ".$table;
1048
+        $sql = "DROP TABLE ".$table;
1049 1049
 
1050
-		if (! $this->query($sql))
1051
-			return -1;
1052
-		else
1053
-			return 1;
1054
-	}
1050
+        if (! $this->query($sql))
1051
+            return -1;
1052
+        else
1053
+            return 1;
1054
+    }
1055 1055
 
1056 1056
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1057
-	/**
1058
-	 * 	Create a user to connect to database
1059
-	 *
1060
-	 *	@param	string	$dolibarr_main_db_host 		Ip server
1061
-	 *	@param	string	$dolibarr_main_db_user 		Name of user to create
1062
-	 *	@param	string	$dolibarr_main_db_pass 		Password of user to create
1063
-	 *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
1064
-	 *	@return	int									<0 if KO, >=0 if OK
1065
-	 */
1066
-	function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
1067
-	{
1057
+    /**
1058
+     * 	Create a user to connect to database
1059
+     *
1060
+     *	@param	string	$dolibarr_main_db_host 		Ip server
1061
+     *	@param	string	$dolibarr_main_db_user 		Name of user to create
1062
+     *	@param	string	$dolibarr_main_db_pass 		Password of user to create
1063
+     *	@param	string	$dolibarr_main_db_name		Database name where user must be granted
1064
+     *	@return	int									<0 if KO, >=0 if OK
1065
+     */
1066
+    function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
1067
+    {
1068 1068
         // phpcs:enable
1069
-		// Note: using ' on user does not works with pgsql
1070
-		$sql = "CREATE USER ".$this->escape($dolibarr_main_db_user)." with password '".$this->escape($dolibarr_main_db_pass)."'";
1069
+        // Note: using ' on user does not works with pgsql
1070
+        $sql = "CREATE USER ".$this->escape($dolibarr_main_db_user)." with password '".$this->escape($dolibarr_main_db_pass)."'";
1071 1071
 
1072
-		dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG);	// No sql to avoid password in log
1073
-		$resql=$this->query($sql);
1074
-		if (! $resql)
1075
-		{
1076
-			return -1;
1077
-		}
1072
+        dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG);	// No sql to avoid password in log
1073
+        $resql=$this->query($sql);
1074
+        if (! $resql)
1075
+        {
1076
+            return -1;
1077
+        }
1078 1078
 
1079
-		return 1;
1080
-	}
1079
+        return 1;
1080
+    }
1081 1081
 
1082 1082
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1083
-	/**
1084
-	 *	Return a pointer of line with description of a table or field
1085
-	 *
1086
-	 *	@param	string		$table	Name of table
1087
-	 *	@param	string		$field	Optionnel : Name of field if we want description of field
1088
-	 *	@return	false|resource		Resultset x (x->attname)
1089
-	 */
1090
-	function DDLDescTable($table,$field="")
1091
-	{
1083
+    /**
1084
+     *	Return a pointer of line with description of a table or field
1085
+     *
1086
+     *	@param	string		$table	Name of table
1087
+     *	@param	string		$field	Optionnel : Name of field if we want description of field
1088
+     *	@return	false|resource		Resultset x (x->attname)
1089
+     */
1090
+    function DDLDescTable($table,$field="")
1091
+    {
1092 1092
         // phpcs:enable
1093
-		$sql ="SELECT attname FROM pg_attribute, pg_type WHERE typname = '".$table."' AND attrelid = typrelid";
1094
-		$sql.=" AND attname NOT IN ('cmin', 'cmax', 'ctid', 'oid', 'tableoid', 'xmin', 'xmax')";
1095
-		if ($field) $sql.= " AND attname = '".$field."'";
1093
+        $sql ="SELECT attname FROM pg_attribute, pg_type WHERE typname = '".$table."' AND attrelid = typrelid";
1094
+        $sql.=" AND attname NOT IN ('cmin', 'cmax', 'ctid', 'oid', 'tableoid', 'xmin', 'xmax')";
1095
+        if ($field) $sql.= " AND attname = '".$field."'";
1096 1096
 
1097
-		dol_syslog($sql,LOG_DEBUG);
1098
-		$this->_results = $this->query($sql);
1099
-		return $this->_results;
1100
-	}
1097
+        dol_syslog($sql,LOG_DEBUG);
1098
+        $this->_results = $this->query($sql);
1099
+        return $this->_results;
1100
+    }
1101 1101
 
1102 1102
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1103
-	/**
1104
-	 *	Create a new field into table
1105
-	 *
1106
-	 *	@param	string	$table 				Name of table
1107
-	 *	@param	string	$field_name 		Name of field to add
1108
-	 *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
1109
-	 *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
1110
-	 *	@return	int							<0 if KO, >0 if OK
1111
-	 */
1112
-	function DDLAddField($table,$field_name,$field_desc,$field_position="")
1113
-	{
1103
+    /**
1104
+     *	Create a new field into table
1105
+     *
1106
+     *	@param	string	$table 				Name of table
1107
+     *	@param	string	$field_name 		Name of field to add
1108
+     *	@param	string	$field_desc 		Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
1109
+     *	@param	string	$field_position 	Optionnel ex.: "after champtruc"
1110
+     *	@return	int							<0 if KO, >0 if OK
1111
+     */
1112
+    function DDLAddField($table,$field_name,$field_desc,$field_position="")
1113
+    {
1114 1114
         // phpcs:enable
1115
-		// cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
1116
-		// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
1117
-		$sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
1118
-		$sql .= $field_desc['type'];
1119
-		if (preg_match("/^[^\s]/i",$field_desc['value']))
1120
-		    if (! in_array($field_desc['type'],array('int','date','datetime')))
1121
-		    {
1122
-		        $sql.= "(".$field_desc['value'].")";
1123
-		    }
1124
-		if (preg_match("/^[^\s]/i",$field_desc['attribute']))
1115
+        // cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
1116
+        // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
1117
+        $sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
1118
+        $sql .= $field_desc['type'];
1119
+        if (preg_match("/^[^\s]/i",$field_desc['value']))
1120
+            if (! in_array($field_desc['type'],array('int','date','datetime')))
1121
+            {
1122
+                $sql.= "(".$field_desc['value'].")";
1123
+            }
1124
+        if (preg_match("/^[^\s]/i",$field_desc['attribute']))
1125 1125
             $sql .= " ".$field_desc['attribute'];
1126
-		if (preg_match("/^[^\s]/i",$field_desc['null']))
1126
+        if (preg_match("/^[^\s]/i",$field_desc['null']))
1127 1127
             $sql .= " ".$field_desc['null'];
1128
-		if (preg_match("/^[^\s]/i",$field_desc['default']))
1128
+        if (preg_match("/^[^\s]/i",$field_desc['default']))
1129 1129
             if (preg_match("/null/i",$field_desc['default']))
1130 1130
                 $sql .= " default ".$field_desc['default'];
1131
-		    else
1131
+            else
1132 1132
                 $sql .= " default '".$field_desc['default']."'";
1133
-		if (preg_match("/^[^\s]/i",$field_desc['extra']))
1133
+        if (preg_match("/^[^\s]/i",$field_desc['extra']))
1134 1134
             $sql .= " ".$field_desc['extra'];
1135
-		$sql .= " ".$field_position;
1135
+        $sql .= " ".$field_position;
1136 1136
 
1137
-		dol_syslog($sql,LOG_DEBUG);
1138
-		if (!$this->query($sql))
1137
+        dol_syslog($sql,LOG_DEBUG);
1138
+        if (!$this->query($sql))
1139 1139
             return -1;
1140
-		return 1;
1141
-	}
1140
+        return 1;
1141
+    }
1142 1142
 
1143 1143
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1144
-	/**
1145
-	 *	Update format of a field into a table
1146
-	 *
1147
-	 *	@param	string	$table 				Name of table
1148
-	 *	@param	string	$field_name 		Name of field to modify
1149
-	 *	@param	string	$field_desc 		Array with description of field format
1150
-	 *	@return	int							<0 if KO, >0 if OK
1151
-	 */
1152
-	function DDLUpdateField($table,$field_name,$field_desc)
1153
-	{
1144
+    /**
1145
+     *	Update format of a field into a table
1146
+     *
1147
+     *	@param	string	$table 				Name of table
1148
+     *	@param	string	$field_name 		Name of field to modify
1149
+     *	@param	string	$field_desc 		Array with description of field format
1150
+     *	@return	int							<0 if KO, >0 if OK
1151
+     */
1152
+    function DDLUpdateField($table,$field_name,$field_desc)
1153
+    {
1154 1154
         // phpcs:enable
1155
-		$sql = "ALTER TABLE ".$table;
1156
-		$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
1157
-		if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
1158
-			$sql.="(".$field_desc['value'].")";
1159
-		}
1160
-
1161
-		if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL')
1162
-		{
1163
-        	// We will try to change format of column to NOT NULL. To be sure the ALTER works, we try to update fields that are NULL
1164
-        	if ($field_desc['type'] == 'varchar' || $field_desc['type'] == 'text')
1165
-        	{
1166
-        		$sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
1167
-        		$this->query($sqlbis);
1168
-        	}
1169
-        	elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
1170
-        	{
1171
-        		$sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
1172
-        		$this->query($sqlbis);
1173
-        	}
1174
-		}
1175
-
1176
-		if ($field_desc['default'] != '')
1177
-		{
1178
-			if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
1179
-        	elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";							// Default not supported on text fields
1180
-		}
1181
-
1182
-		dol_syslog($sql,LOG_DEBUG);
1183
-		if (! $this->query($sql))
1184
-			return -1;
1185
-		return 1;
1186
-	}
1155
+        $sql = "ALTER TABLE ".$table;
1156
+        $sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
1157
+        if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
1158
+            $sql.="(".$field_desc['value'].")";
1159
+        }
1160
+
1161
+        if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL')
1162
+        {
1163
+            // We will try to change format of column to NOT NULL. To be sure the ALTER works, we try to update fields that are NULL
1164
+            if ($field_desc['type'] == 'varchar' || $field_desc['type'] == 'text')
1165
+            {
1166
+                $sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
1167
+                $this->query($sqlbis);
1168
+            }
1169
+            elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
1170
+            {
1171
+                $sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
1172
+                $this->query($sqlbis);
1173
+            }
1174
+        }
1175
+
1176
+        if ($field_desc['default'] != '')
1177
+        {
1178
+            if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
1179
+            elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";							// Default not supported on text fields
1180
+        }
1181
+
1182
+        dol_syslog($sql,LOG_DEBUG);
1183
+        if (! $this->query($sql))
1184
+            return -1;
1185
+        return 1;
1186
+    }
1187 1187
 
1188 1188
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
1189
-	/**
1190
-	 *	Drop a field from table
1191
-	 *
1192
-	 *	@param	string	$table 			Name of table
1193
-	 *	@param	string	$field_name 	Name of field to drop
1194
-	 *	@return	int						<0 if KO, >0 if OK
1195
-	 */
1196
-	function DDLDropField($table,$field_name)
1197
-	{
1189
+    /**
1190
+     *	Drop a field from table
1191
+     *
1192
+     *	@param	string	$table 			Name of table
1193
+     *	@param	string	$field_name 	Name of field to drop
1194
+     *	@return	int						<0 if KO, >0 if OK
1195
+     */
1196
+    function DDLDropField($table,$field_name)
1197
+    {
1198 1198
         // phpcs:enable
1199
-		$sql= "ALTER TABLE ".$table." DROP COLUMN ".$field_name;
1200
-		dol_syslog($sql,LOG_DEBUG);
1201
-		if (! $this->query($sql))
1202
-		{
1203
-			$this->error=$this->lasterror();
1204
-			return -1;
1205
-		}
1206
-		return 1;
1207
-	}
1208
-
1209
-	/**
1210
-	 *	Return charset used to store data in database
1211
-	 *
1212
-	 *	@return		string		Charset
1213
-	 */
1214
-	function getDefaultCharacterSetDatabase()
1215
-	{
1216
-		$resql=$this->query('SHOW SERVER_ENCODING');
1217
-		if ($resql)
1218
-		{
1199
+        $sql= "ALTER TABLE ".$table." DROP COLUMN ".$field_name;
1200
+        dol_syslog($sql,LOG_DEBUG);
1201
+        if (! $this->query($sql))
1202
+        {
1203
+            $this->error=$this->lasterror();
1204
+            return -1;
1205
+        }
1206
+        return 1;
1207
+    }
1208
+
1209
+    /**
1210
+     *	Return charset used to store data in database
1211
+     *
1212
+     *	@return		string		Charset
1213
+     */
1214
+    function getDefaultCharacterSetDatabase()
1215
+    {
1216
+        $resql=$this->query('SHOW SERVER_ENCODING');
1217
+        if ($resql)
1218
+        {
1219 1219
             $liste=$this->fetch_array($resql);
1220
-		    return $liste['server_encoding'];
1221
-		}
1222
-		else return '';
1223
-	}
1224
-
1225
-	/**
1226
-	 *	Return list of available charset that can be used to store data in database
1227
-	 *
1228
-	 *	@return		array		List of Charset
1229
-	 */
1230
-	function getListOfCharacterSet()
1231
-	{
1232
-		$resql=$this->query('SHOW SERVER_ENCODING');
1233
-		$liste = array();
1234
-		if ($resql)
1235
-		{
1236
-			$i = 0;
1237
-			while ($obj = $this->fetch_object($resql))
1238
-			{
1239
-				$liste[$i]['charset'] = $obj->server_encoding;
1240
-				$liste[$i]['description'] = 'Default database charset';
1241
-				$i++;
1242
-			}
1243
-			$this->free($resql);
1244
-		} else {
1245
-			return null;
1246
-		}
1247
-		return $liste;
1248
-	}
1249
-
1250
-	/**
1251
-	 *	Return collation used in database
1252
-	 *
1253
-	 *	@return		string		Collation value
1254
-	 */
1255
-	function getDefaultCollationDatabase()
1256
-	{
1257
-		$resql=$this->query('SHOW LC_COLLATE');
1258
-		if ($resql)
1259
-		{
1260
-		    $liste=$this->fetch_array($resql);
1261
-			return $liste['lc_collate'];
1262
-		}
1263
-		else return '';
1264
-	}
1265
-
1266
-	/**
1267
-	 *	Return list of available collation that can be used for database
1268
-	 *
1269
-	 *	@return		array		Liste of Collation
1270
-	 */
1271
-	function getListOfCollation()
1272
-	{
1273
-		$resql=$this->query('SHOW LC_COLLATE');
1274
-		$liste = array();
1275
-		if ($resql)
1276
-		{
1277
-			$i = 0;
1278
-			while ($obj = $this->fetch_object($resql) )
1279
-			{
1280
-				$liste[$i]['collation'] = $obj->lc_collate;
1281
-				$i++;
1282
-			}
1283
-			$this->free($resql);
1284
-		} else {
1285
-			return null;
1286
-		}
1287
-		return $liste;
1288
-	}
1289
-
1290
-	/**
1291
-	 *	Return full path of dump program
1292
-	 *
1293
-	 *	@return		string		Full path of dump program
1294
-	 */
1295
-	function getPathOfDump()
1296
-	{
1297
-		$fullpathofdump='/pathtopgdump/pg_dump';
1298
-
1299
-		if (file_exists('/usr/bin/pg_dump'))
1300
-		{
1301
-		    $fullpathofdump='/usr/bin/pg_dump';
1302
-		}
1303
-		else
1304
-		{
1220
+            return $liste['server_encoding'];
1221
+        }
1222
+        else return '';
1223
+    }
1224
+
1225
+    /**
1226
+     *	Return list of available charset that can be used to store data in database
1227
+     *
1228
+     *	@return		array		List of Charset
1229
+     */
1230
+    function getListOfCharacterSet()
1231
+    {
1232
+        $resql=$this->query('SHOW SERVER_ENCODING');
1233
+        $liste = array();
1234
+        if ($resql)
1235
+        {
1236
+            $i = 0;
1237
+            while ($obj = $this->fetch_object($resql))
1238
+            {
1239
+                $liste[$i]['charset'] = $obj->server_encoding;
1240
+                $liste[$i]['description'] = 'Default database charset';
1241
+                $i++;
1242
+            }
1243
+            $this->free($resql);
1244
+        } else {
1245
+            return null;
1246
+        }
1247
+        return $liste;
1248
+    }
1249
+
1250
+    /**
1251
+     *	Return collation used in database
1252
+     *
1253
+     *	@return		string		Collation value
1254
+     */
1255
+    function getDefaultCollationDatabase()
1256
+    {
1257
+        $resql=$this->query('SHOW LC_COLLATE');
1258
+        if ($resql)
1259
+        {
1260
+            $liste=$this->fetch_array($resql);
1261
+            return $liste['lc_collate'];
1262
+        }
1263
+        else return '';
1264
+    }
1265
+
1266
+    /**
1267
+     *	Return list of available collation that can be used for database
1268
+     *
1269
+     *	@return		array		Liste of Collation
1270
+     */
1271
+    function getListOfCollation()
1272
+    {
1273
+        $resql=$this->query('SHOW LC_COLLATE');
1274
+        $liste = array();
1275
+        if ($resql)
1276
+        {
1277
+            $i = 0;
1278
+            while ($obj = $this->fetch_object($resql) )
1279
+            {
1280
+                $liste[$i]['collation'] = $obj->lc_collate;
1281
+                $i++;
1282
+            }
1283
+            $this->free($resql);
1284
+        } else {
1285
+            return null;
1286
+        }
1287
+        return $liste;
1288
+    }
1289
+
1290
+    /**
1291
+     *	Return full path of dump program
1292
+     *
1293
+     *	@return		string		Full path of dump program
1294
+     */
1295
+    function getPathOfDump()
1296
+    {
1297
+        $fullpathofdump='/pathtopgdump/pg_dump';
1298
+
1299
+        if (file_exists('/usr/bin/pg_dump'))
1300
+        {
1301
+            $fullpathofdump='/usr/bin/pg_dump';
1302
+        }
1303
+        else
1304
+        {
1305 1305
             // TODO L'utilisateur de la base doit etre un superadmin pour lancer cette commande
1306
-		    $resql=$this->query('SHOW data_directory');
1307
-    		if ($resql)
1308
-    		{
1309
-    			$liste=$this->fetch_array($resql);
1310
-    			$basedir=$liste['data_directory'];
1311
-    			$fullpathofdump=preg_replace('/data$/','bin',$basedir).'/pg_dump';
1312
-    		}
1313
-		}
1314
-
1315
-		return $fullpathofdump;
1316
-	}
1306
+            $resql=$this->query('SHOW data_directory');
1307
+            if ($resql)
1308
+            {
1309
+                $liste=$this->fetch_array($resql);
1310
+                $basedir=$liste['data_directory'];
1311
+                $fullpathofdump=preg_replace('/data$/','bin',$basedir).'/pg_dump';
1312
+            }
1313
+        }
1314
+
1315
+        return $fullpathofdump;
1316
+    }
1317 1317
 
1318 1318
     /**
1319 1319
      *	Return full path of restore program
1320 1320
      *
1321 1321
      *	@return		string		Full path of restore program
1322 1322
      */
1323
-	function getPathOfRestore()
1324
-	{
1325
-		//$tool='pg_restore';
1326
-		$tool='psql';
1323
+    function getPathOfRestore()
1324
+    {
1325
+        //$tool='pg_restore';
1326
+        $tool='psql';
1327 1327
 
1328
-		$fullpathofdump='/pathtopgrestore/'.$tool;
1328
+        $fullpathofdump='/pathtopgrestore/'.$tool;
1329 1329
 
1330 1330
         if (file_exists('/usr/bin/'.$tool))
1331 1331
         {
@@ -1343,39 +1343,39 @@  discard block
 block discarded – undo
1343 1343
             }
1344 1344
         }
1345 1345
 
1346
-		return $fullpathofdump;
1347
-	}
1348
-
1349
-	/**
1350
-	 * Return value of server parameters
1351
-	 *
1352
-	 * @param	string	$filter		Filter list on a particular value
1353
-	 * @return	array				Array of key-values (key=>value)
1354
-	 */
1355
-	function getServerParametersValues($filter='')
1356
-	{
1357
-		$result=array();
1358
-
1359
-		$resql='select name,setting from pg_settings';
1360
-		if ($filter) $resql.=" WHERE name = '".$this->escape($filter)."'";
1361
-		$resql=$this->query($resql);
1362
-		if ($resql)
1363
-		{
1364
-			while ($obj=$this->fetch_object($resql)) $result[$obj->name]=$obj->setting;
1365
-		}
1366
-
1367
-		return $result;
1368
-	}
1369
-
1370
-	/**
1371
-	 * Return value of server status
1372
-	 *
1373
-	 * @param	string	$filter		Filter list on a particular value
1374
-	 * @return  array				Array of key-values (key=>value)
1375
-	 */
1376
-	function getServerStatusValues($filter='')
1377
-	{
1378
-		/* This is to return current running requests.
1346
+        return $fullpathofdump;
1347
+    }
1348
+
1349
+    /**
1350
+     * Return value of server parameters
1351
+     *
1352
+     * @param	string	$filter		Filter list on a particular value
1353
+     * @return	array				Array of key-values (key=>value)
1354
+     */
1355
+    function getServerParametersValues($filter='')
1356
+    {
1357
+        $result=array();
1358
+
1359
+        $resql='select name,setting from pg_settings';
1360
+        if ($filter) $resql.=" WHERE name = '".$this->escape($filter)."'";
1361
+        $resql=$this->query($resql);
1362
+        if ($resql)
1363
+        {
1364
+            while ($obj=$this->fetch_object($resql)) $result[$obj->name]=$obj->setting;
1365
+        }
1366
+
1367
+        return $result;
1368
+    }
1369
+
1370
+    /**
1371
+     * Return value of server status
1372
+     *
1373
+     * @param	string	$filter		Filter list on a particular value
1374
+     * @return  array				Array of key-values (key=>value)
1375
+     */
1376
+    function getServerStatusValues($filter='')
1377
+    {
1378
+        /* This is to return current running requests.
1379 1379
 		$sql='SELECT datname,procpid,current_query FROM pg_stat_activity ORDER BY procpid';
1380 1380
         if ($filter) $sql.=" LIKE '".$this->escape($filter)."'";
1381 1381
         $resql=$this->query($sql);
@@ -1386,6 +1386,6 @@  discard block
 block discarded – undo
1386 1386
         }
1387 1387
 		*/
1388 1388
 
1389
-		return array();
1390
-	}
1389
+        return array();
1390
+    }
1391 1391
 }
Please login to merge, or discard this patch.
Braces   +164 added lines, -100 removed lines patch added patch discarded remove patch
@@ -74,8 +74,12 @@  discard block
 block discarded – undo
74 74
 		global $conf,$langs;
75 75
 
76 76
         // Note that having "static" property for "$forcecharset" and "$forcecollate" will make error here in strict mode, so they are not static
77
-		if (! empty($conf->db->character_set)) $this->forcecharset=$conf->db->character_set;
78
-		if (! empty($conf->db->dolibarr_main_db_collation))	$this->forcecollate=$conf->db->dolibarr_main_db_collation;
77
+		if (! empty($conf->db->character_set)) {
78
+		    $this->forcecharset=$conf->db->character_set;
79
+		}
80
+		if (! empty($conf->db->dolibarr_main_db_collation)) {
81
+		    $this->forcecollate=$conf->db->dolibarr_main_db_collation;
82
+		}
79 83
 
80 84
 		$this->database_user=$user;
81 85
         $this->database_host=$host;
@@ -111,8 +115,7 @@  discard block
 block discarded – undo
111 115
 		{
112 116
 			$this->connected = true;
113 117
 			$this->ok = true;
114
-		}
115
-		else
118
+		} else
116 119
 		{
117 120
 			// host, login ou password incorrect
118 121
 			$this->connected = false;
@@ -129,8 +132,7 @@  discard block
 block discarded – undo
129 132
 				$this->database_selected = true;
130 133
 				$this->database_name = $name;
131 134
 				$this->ok = true;
132
-			}
133
-			else
135
+			} else
134 136
 			{
135 137
 				$this->database_selected = false;
136 138
 				$this->database_name = '';
@@ -138,8 +140,7 @@  discard block
 block discarded – undo
138 140
 				$this->error=$this->error();
139 141
 				dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Select_db ".$this->error,LOG_ERR);
140 142
 			}
141
-		}
142
-		else
143
+		} else
143 144
 		{
144 145
 			// Pas de selection de base demandee, ok ou ko
145 146
 			$this->database_selected = false;
@@ -179,9 +180,13 @@  discard block
 block discarded – undo
179 180
 
180 181
 		    if ($type == 'auto')
181 182
 		    {
182
-              if (preg_match('/ALTER TABLE/i',$line)) $type='dml';
183
-              else if (preg_match('/CREATE TABLE/i',$line)) $type='dml';
184
-              else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
183
+              if (preg_match('/ALTER TABLE/i',$line)) {
184
+                  $type='dml';
185
+              } else if (preg_match('/CREATE TABLE/i',$line)) {
186
+                  $type='dml';
187
+              } else if (preg_match('/DROP TABLE/i',$line)) {
188
+                  $type='dml';
189
+              }
185 190
 		    }
186 191
 
187 192
     		$line=preg_replace('/ as signed\)/i',' as integer)',$line);
@@ -328,9 +333,11 @@  discard block
 block discarded – undo
328 333
 			// DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
329 334
 			if (preg_match('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i',$line,$reg))
330 335
 			{
331
-				if ($reg[1] == $reg[2])	// If same table, we remove second one
336
+				if ($reg[1] == $reg[2]) {
337
+				    // If same table, we remove second one
332 338
 				{
333
-					$line=preg_replace('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i','DELETE FROM \\1 USING \\3', $line);
339
+					$line=preg_replace('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i','DELETE FROM \\1 USING \\3', $line);
340
+				}
334 341
 				}
335 342
 			}
336 343
 
@@ -358,7 +365,9 @@  discard block
 block discarded – undo
358 365
 			// By default we do not (should be already done by db->escape function if required
359 366
 			// except for sql insert in data file that are mysql escaped so we removed them to
360 367
 			// be compatible with standard_conforming_strings=on that considers \ as ordinary character).
361
-			if ($unescapeslashquot) $line=preg_replace("/\\\'/","''",$line);
368
+			if ($unescapeslashquot) {
369
+			    $line=preg_replace("/\\\'/","''",$line);
370
+			}
362 371
 
363 372
 			//print "type=".$type." newline=".$line."<br>\n";
364 373
 		}
@@ -409,7 +418,10 @@  discard block
 block discarded – undo
409 418
 		$name = str_replace(array("\\", "'"), array("\\\\", "\\'"), $name);
410 419
 		$port = str_replace(array("\\", "'"), array("\\\\", "\\'"), $port);
411 420
 
412
-		if (! $name) $name="postgres";    // When try to connect using admin user
421
+		if (! $name) {
422
+		    $name="postgres";
423
+		}
424
+		// When try to connect using admin user
413 425
 
414 426
 		// try first Unix domain socket (local)
415 427
 		if ((! empty($host) && $host == "socket") && ! defined('NOLOCALSOCKETPGCONNECT'))
@@ -421,8 +433,12 @@  discard block
 block discarded – undo
421 433
 		// if local connection failed or not requested, use TCP/IP
422 434
 		if (! $this->db)
423 435
 		{
424
-		    if (! $host) $host = "localhost";
425
-			if (! $port) $port = 5432;
436
+		    if (! $host) {
437
+		        $host = "localhost";
438
+		    }
439
+			if (! $port) {
440
+			    $port = 5432;
441
+			}
426 442
 
427 443
 			$con_string = "host='".$host."' port='".$port."' dbname='".$name."' user='".$login."' password='".$passwd."'";
428 444
 			$this->db = @pg_connect($con_string);
@@ -475,7 +491,9 @@  discard block
 block discarded – undo
475 491
     {
476 492
         if ($this->db)
477 493
         {
478
-          if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
494
+          if ($this->transaction_opened > 0) {
495
+              dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR);
496
+          }
479 497
           $this->connected=false;
480 498
           return pg_close($this->db);
481 499
         }
@@ -512,8 +530,9 @@  discard block
 block discarded – undo
512 530
 				{
513 531
 					$query=preg_replace('/([^\'])([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9])/','\\1\'\\2\'',$query);
514 532
 					dol_syslog("Warning: Bad formed request converted into ".$query,LOG_WARNING);
515
-				}
516
-				else $loop=false;
533
+				} else {
534
+				    $loop=false;
535
+				}
517 536
 			}
518 537
 		}
519 538
 
@@ -522,29 +541,38 @@  discard block
 block discarded – undo
522 541
 			@pg_query($this->db, 'SAVEPOINT mysavepoint');
523 542
 		}
524 543
 
525
-		if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
544
+		if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) {
545
+		    dol_syslog('sql='.$query, LOG_DEBUG);
546
+		}
526 547
 
527 548
 		$ret = @pg_query($this->db, $query);
528 549
 
529 550
 		//print $query;
530
-		if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query)) // Si requete utilisateur, on la sauvegarde ainsi que son resultset
551
+		if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query)) {
552
+		    // Si requete utilisateur, on la sauvegarde ainsi que son resultset
531 553
 		{
532 554
 			if (! $ret)
533 555
 			{
534 556
 			    if ($this->errno() != 'DB_ERROR_25P02')	// Do not overwrite errors if this is a consecutive error
535 557
 			    {
536
-    				$this->lastqueryerror = $query;
558
+    				$this->lastqueryerror = $query;
559
+		}
537 560
     				$this->lasterror = $this->error();
538 561
     				$this->lasterrno = $this->errno();
539 562
 
540
-    				if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);	// Log of request was not yet done previously
563
+    				if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) {
564
+    				    dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);
565
+    				}
566
+    				// Log of request was not yet done previously
541 567
 					dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterror." (".$this->lasterrno.")", LOG_ERR);
542 568
 					dol_syslog(get_class($this)."::query SQL Error usesavepoint = ".$usesavepoint, LOG_ERR);
543 569
 			    }
544 570
 
545
-				if ($usesavepoint && $this->transaction_opened)	// Warning, after that errno will be erased
571
+				if ($usesavepoint && $this->transaction_opened) {
572
+				    // Warning, after that errno will be erased
546 573
 				{
547
-					@pg_query($this->db, 'ROLLBACK TO SAVEPOINT mysavepoint');
574
+					@pg_query($this->db, 'ROLLBACK TO SAVEPOINT mysavepoint');
575
+				}
548 576
 				}
549 577
 			}
550 578
 			$this->lastquery=$query;
@@ -645,7 +673,9 @@  discard block
 block discarded – undo
645 673
         // If resultset not provided, we take the last used by connexion
646 674
 		if (! is_resource($resultset)) { $resultset=$this->_results; }
647 675
 		// Si resultset en est un, on libere la memoire
648
-		if (is_resource($resultset)) pg_free_result($resultset);
676
+		if (is_resource($resultset)) {
677
+		    pg_free_result($resultset);
678
+		}
649 679
 	}
650 680
 
651 681
 
@@ -659,10 +689,17 @@  discard block
 block discarded – undo
659 689
 	function plimit($limit=0,$offset=0)
660 690
 	{
661 691
 		global $conf;
662
-        if (empty($limit)) return "";
663
-		if ($limit < 0) $limit=$conf->liste_limit;
664
-		if ($offset > 0) return " LIMIT ".$limit." OFFSET ".$offset." ";
665
-		else return " LIMIT $limit ";
692
+        if (empty($limit)) {
693
+            return "";
694
+        }
695
+		if ($limit < 0) {
696
+		    $limit=$conf->liste_limit;
697
+		}
698
+		if ($offset > 0) {
699
+		    return " LIMIT ".$limit." OFFSET ".$offset." ";
700
+		} else {
701
+		    return " LIMIT $limit ";
702
+		}
666 703
 	}
667 704
 
668 705
 
@@ -712,8 +749,7 @@  discard block
 block discarded – undo
712 749
 		if (! $this->connected) {
713 750
 			// Si il y a eu echec de connexion, $this->db n'est pas valide.
714 751
 			return 'DB_ERROR_FAILED_TO_CONNECT';
715
-		}
716
-		else {
752
+		} else {
717 753
 			// Constants to convert error code to a generic Dolibarr error code
718 754
 			$errorcode_map = array(
719 755
 			1004 => 'DB_ERROR_CANNOT_CREATE',
@@ -874,8 +910,12 @@  discard block
 block discarded – undo
874 910
 	function DDLCreateDb($database,$charset='',$collation='',$owner='')
875 911
 	{
876 912
         // phpcs:enable
877
-	    if (empty($charset))   $charset=$this->forcecharset;
878
-		if (empty($collation)) $collation=$this->forcecollate;
913
+	    if (empty($charset)) {
914
+	        $charset=$this->forcecharset;
915
+	    }
916
+		if (empty($collation)) {
917
+		    $collation=$this->forcecollate;
918
+		}
879 919
 
880 920
 		// Test charset match LC_TYPE (pgsql error otherwise)
881 921
 		//print $charset.' '.setlocale(LC_CTYPE,'0'); exit;
@@ -900,7 +940,9 @@  discard block
 block discarded – undo
900 940
 		$listtables=array();
901 941
 
902 942
 		$like = '';
903
-		if ($table) $like = " AND table_name LIKE '".$table."'";
943
+		if ($table) {
944
+		    $like = " AND table_name LIKE '".$table."'";
945
+		}
904 946
 		$result = pg_query($this->db, "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'".$like." ORDER BY table_name");
905 947
         if ($result)
906 948
         {
@@ -980,26 +1022,27 @@  discard block
 block discarded – undo
980 1022
 		{
981 1023
 			$sqlfields[$i] = $field_name." ";
982 1024
 			$sqlfields[$i]  .= $field_desc['type'];
983
-			if( preg_match("/^[^\s]/i",$field_desc['value']))
984
-			$sqlfields[$i]  .= "(".$field_desc['value'].")";
985
-			else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
986
-			$sqlfields[$i]  .= " ".$field_desc['attribute'];
987
-			else if( preg_match("/^[^\s]/i",$field_desc['default']))
1025
+			if( preg_match("/^[^\s]/i",$field_desc['value'])) {
1026
+						$sqlfields[$i]  .= "(".$field_desc['value'].")";
1027
+			} else if( preg_match("/^[^\s]/i",$field_desc['attribute'])) {
1028
+						$sqlfields[$i]  .= " ".$field_desc['attribute'];
1029
+			} else if( preg_match("/^[^\s]/i",$field_desc['default']))
988 1030
 			{
989
-				if(preg_match("/null/i",$field_desc['default']))
990
-				$sqlfields[$i]  .= " default ".$field_desc['default'];
991
-				else
992
-				$sqlfields[$i]  .= " default '".$field_desc['default']."'";
993
-			}
994
-			else if( preg_match("/^[^\s]/i",$field_desc['null']))
995
-			$sqlfields[$i]  .= " ".$field_desc['null'];
996
-
997
-			else if( preg_match("/^[^\s]/i",$field_desc['extra']))
998
-			$sqlfields[$i]  .= " ".$field_desc['extra'];
1031
+				if(preg_match("/null/i",$field_desc['default'])) {
1032
+								$sqlfields[$i]  .= " default ".$field_desc['default'];
1033
+				} else {
1034
+								$sqlfields[$i]  .= " default '".$field_desc['default']."'";
1035
+				}
1036
+			} else if( preg_match("/^[^\s]/i",$field_desc['null'])) {
1037
+						$sqlfields[$i]  .= " ".$field_desc['null'];
1038
+			} else if( preg_match("/^[^\s]/i",$field_desc['extra'])) {
1039
+						$sqlfields[$i]  .= " ".$field_desc['extra'];
1040
+			}
999 1041
 			$i++;
1000 1042
 		}
1001
-		if($primary_key != "")
1002
-		$pk = "primary key(".$primary_key.")";
1043
+		if($primary_key != "") {
1044
+				$pk = "primary key(".$primary_key.")";
1045
+		}
1003 1046
 
1004 1047
 		if(is_array($unique_keys))
1005 1048
 		{
@@ -1020,19 +1063,23 @@  discard block
 block discarded – undo
1020 1063
 			}
1021 1064
 		}
1022 1065
 		$sql .= implode(',',$sqlfields);
1023
-		if($primary_key != "")
1024
-		$sql .= ",".$pk;
1025
-		if(is_array($unique_keys))
1026
-		$sql .= ",".implode(',',$sqluq);
1027
-		if(is_array($keys))
1028
-		$sql .= ",".implode(',',$sqlk);
1066
+		if($primary_key != "") {
1067
+				$sql .= ",".$pk;
1068
+		}
1069
+		if(is_array($unique_keys)) {
1070
+				$sql .= ",".implode(',',$sqluq);
1071
+		}
1072
+		if(is_array($keys)) {
1073
+				$sql .= ",".implode(',',$sqlk);
1074
+		}
1029 1075
 		$sql .=") type=".$type;
1030 1076
 
1031 1077
 		dol_syslog($sql,LOG_DEBUG);
1032
-		if(! $this->query($sql))
1033
-		return -1;
1034
-		else
1035
-		return 1;
1078
+		if(! $this->query($sql)) {
1079
+				return -1;
1080
+		} else {
1081
+				return 1;
1082
+		}
1036 1083
 	}
1037 1084
 
1038 1085
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -1047,10 +1094,11 @@  discard block
 block discarded – undo
1047 1094
         // phpcs:enable
1048 1095
 		$sql = "DROP TABLE ".$table;
1049 1096
 
1050
-		if (! $this->query($sql))
1051
-			return -1;
1052
-		else
1053
-			return 1;
1097
+		if (! $this->query($sql)) {
1098
+					return -1;
1099
+		} else {
1100
+					return 1;
1101
+		}
1054 1102
 	}
1055 1103
 
1056 1104
     // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
@@ -1092,7 +1140,9 @@  discard block
 block discarded – undo
1092 1140
         // phpcs:enable
1093 1141
 		$sql ="SELECT attname FROM pg_attribute, pg_type WHERE typname = '".$table."' AND attrelid = typrelid";
1094 1142
 		$sql.=" AND attname NOT IN ('cmin', 'cmax', 'ctid', 'oid', 'tableoid', 'xmin', 'xmax')";
1095
-		if ($field) $sql.= " AND attname = '".$field."'";
1143
+		if ($field) {
1144
+		    $sql.= " AND attname = '".$field."'";
1145
+		}
1096 1146
 
1097 1147
 		dol_syslog($sql,LOG_DEBUG);
1098 1148
 		$this->_results = $this->query($sql);
@@ -1116,27 +1166,33 @@  discard block
 block discarded – undo
1116 1166
 		// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
1117 1167
 		$sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
1118 1168
 		$sql .= $field_desc['type'];
1119
-		if (preg_match("/^[^\s]/i",$field_desc['value']))
1120
-		    if (! in_array($field_desc['type'],array('int','date','datetime')))
1169
+		if (preg_match("/^[^\s]/i",$field_desc['value'])) {
1170
+				    if (! in_array($field_desc['type'],array('int','date','datetime')))
1121 1171
 		    {
1122
-		        $sql.= "(".$field_desc['value'].")";
1172
+		        $sql.= "(".$field_desc['value'].")";
1173
+		}
1123 1174
 		    }
1124
-		if (preg_match("/^[^\s]/i",$field_desc['attribute']))
1125
-            $sql .= " ".$field_desc['attribute'];
1126
-		if (preg_match("/^[^\s]/i",$field_desc['null']))
1127
-            $sql .= " ".$field_desc['null'];
1128
-		if (preg_match("/^[^\s]/i",$field_desc['default']))
1129
-            if (preg_match("/null/i",$field_desc['default']))
1130
-                $sql .= " default ".$field_desc['default'];
1131
-		    else
1132
-                $sql .= " default '".$field_desc['default']."'";
1133
-		if (preg_match("/^[^\s]/i",$field_desc['extra']))
1134
-            $sql .= " ".$field_desc['extra'];
1175
+		if (preg_match("/^[^\s]/i",$field_desc['attribute'])) {
1176
+		            $sql .= " ".$field_desc['attribute'];
1177
+		}
1178
+		if (preg_match("/^[^\s]/i",$field_desc['null'])) {
1179
+		            $sql .= " ".$field_desc['null'];
1180
+		}
1181
+		if (preg_match("/^[^\s]/i",$field_desc['default'])) {
1182
+		            if (preg_match("/null/i",$field_desc['default']))
1183
+                $sql .= " default ".$field_desc['default'];
1184
+		} else {
1185
+		                    $sql .= " default '".$field_desc['default']."'";
1186
+		    }
1187
+		if (preg_match("/^[^\s]/i",$field_desc['extra'])) {
1188
+		            $sql .= " ".$field_desc['extra'];
1189
+		}
1135 1190
 		$sql .= " ".$field_position;
1136 1191
 
1137 1192
 		dol_syslog($sql,LOG_DEBUG);
1138
-		if (!$this->query($sql))
1139
-            return -1;
1193
+		if (!$this->query($sql)) {
1194
+		            return -1;
1195
+		}
1140 1196
 		return 1;
1141 1197
 	}
1142 1198
 
@@ -1165,8 +1221,7 @@  discard block
 block discarded – undo
1165 1221
         	{
1166 1222
         		$sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
1167 1223
         		$this->query($sqlbis);
1168
-        	}
1169
-        	elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
1224
+        	} elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
1170 1225
         	{
1171 1226
         		$sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
1172 1227
         		$this->query($sqlbis);
@@ -1175,13 +1230,18 @@  discard block
 block discarded – undo
1175 1230
 
1176 1231
 		if ($field_desc['default'] != '')
1177 1232
 		{
1178
-			if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
1179
-        	elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";							// Default not supported on text fields
1233
+			if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') {
1234
+			    $sql.=" DEFAULT ".$this->escape($field_desc['default']);
1235
+			} elseif ($field_desc['type'] == 'text') {
1236
+        	    $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'";
1237
+        	}
1238
+        	// Default not supported on text fields
1180 1239
 		}
1181 1240
 
1182 1241
 		dol_syslog($sql,LOG_DEBUG);
1183
-		if (! $this->query($sql))
1184
-			return -1;
1242
+		if (! $this->query($sql)) {
1243
+					return -1;
1244
+		}
1185 1245
 		return 1;
1186 1246
 	}
1187 1247
 
@@ -1218,8 +1278,9 @@  discard block
 block discarded – undo
1218 1278
 		{
1219 1279
             $liste=$this->fetch_array($resql);
1220 1280
 		    return $liste['server_encoding'];
1221
-		}
1222
-		else return '';
1281
+		} else {
1282
+		    return '';
1283
+		}
1223 1284
 	}
1224 1285
 
1225 1286
 	/**
@@ -1259,8 +1320,9 @@  discard block
 block discarded – undo
1259 1320
 		{
1260 1321
 		    $liste=$this->fetch_array($resql);
1261 1322
 			return $liste['lc_collate'];
1262
-		}
1263
-		else return '';
1323
+		} else {
1324
+		    return '';
1325
+		}
1264 1326
 	}
1265 1327
 
1266 1328
 	/**
@@ -1299,8 +1361,7 @@  discard block
 block discarded – undo
1299 1361
 		if (file_exists('/usr/bin/pg_dump'))
1300 1362
 		{
1301 1363
 		    $fullpathofdump='/usr/bin/pg_dump';
1302
-		}
1303
-		else
1364
+		} else
1304 1365
 		{
1305 1366
             // TODO L'utilisateur de la base doit etre un superadmin pour lancer cette commande
1306 1367
 		    $resql=$this->query('SHOW data_directory');
@@ -1330,8 +1391,7 @@  discard block
 block discarded – undo
1330 1391
         if (file_exists('/usr/bin/'.$tool))
1331 1392
         {
1332 1393
             $fullpathofdump='/usr/bin/'.$tool;
1333
-        }
1334
-        else
1394
+        } else
1335 1395
         {
1336 1396
             // TODO L'utilisateur de la base doit etre un superadmin pour lancer cette commande
1337 1397
             $resql=$this->query('SHOW data_directory');
@@ -1357,11 +1417,15 @@  discard block
 block discarded – undo
1357 1417
 		$result=array();
1358 1418
 
1359 1419
 		$resql='select name,setting from pg_settings';
1360
-		if ($filter) $resql.=" WHERE name = '".$this->escape($filter)."'";
1420
+		if ($filter) {
1421
+		    $resql.=" WHERE name = '".$this->escape($filter)."'";
1422
+		}
1361 1423
 		$resql=$this->query($resql);
1362 1424
 		if ($resql)
1363 1425
 		{
1364
-			while ($obj=$this->fetch_object($resql)) $result[$obj->name]=$obj->setting;
1426
+			while ($obj=$this->fetch_object($resql)) {
1427
+			    $result[$obj->name]=$obj->setting;
1428
+			}
1365 1429
 		}
1366 1430
 
1367 1431
 		return $result;
Please login to merge, or discard this patch.