Completed
Push — master ( 14d945...2b8148 )
by cam
01:13
created
ecrire/req/mysql.php 3 patches
Indentation   +826 added lines, -826 removed lines patch added patch discarded remove patch
@@ -20,11 +20,11 @@  discard block
 block discarded – undo
20 20
  */
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 if (!defined('_MYSQL_NOPLANES')) {
27
-	define('_MYSQL_NOPLANES', true);
27
+    define('_MYSQL_NOPLANES', true);
28 28
 }
29 29
 
30 30
 /**
@@ -41,108 +41,108 @@  discard block
 block discarded – undo
41 41
  *     - tableau décrivant la connexion sinon
42 42
  */
43 43
 function req_mysql_dist($host, $port, $login, $pass, $db = '', $prefixe = '') {
44
-	if (!extension_loaded('mysqli')) {
45
-		return false;
46
-	}
47
-
48
-	// si port est fourni mais pas host, c'est un socket -> compat avec vieille syntaxe de mysql_connect() et anciens fichiers connect.php
49
-	if (
50
-		$port and !is_numeric($socket = $port)
51
-		and (!$host or $host == 'localhost')
52
-	) {
53
-		$link = @mysqli_connect($host, $login, $pass, '', null, $socket);
54
-	}
55
-	elseif ($port) {
56
-		$link = @mysqli_connect($host, $login, $pass, '', $port);
57
-	}
58
-	else {
59
-		$link = @mysqli_connect($host, $login, $pass);
60
-	}
61
-
62
-	if (!$link) {
63
-		spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
64
-
65
-		return false;
66
-	}
67
-	$last = '';
68
-	if (!$db) {
69
-		$ok = $link;
70
-		$db = 'spip';
71
-	} else {
72
-		$ok = mysqli_select_db($link, $db);
73
-		if (
74
-			defined('_MYSQL_SET_SQL_MODE')
75
-			or defined('_MYSQL_SQL_MODE_TEXT_NOT_NULL') // compatibilite
76
-		) {
77
-			mysqli_query($link, $last = "set sql_mode=''");
78
-		}
79
-	}
80
-
81
-	spip_log(
82
-		"Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
83
-		_LOG_DEBUG
84
-	);
85
-
86
-	return !$ok ? false : [
87
-		'db' => $db,
88
-		'last' => $last,
89
-		'prefixe' => $prefixe ? $prefixe : $db,
90
-		'link' => $link,
91
-		'total_requetes' => 0,
92
-	];
44
+    if (!extension_loaded('mysqli')) {
45
+        return false;
46
+    }
47
+
48
+    // si port est fourni mais pas host, c'est un socket -> compat avec vieille syntaxe de mysql_connect() et anciens fichiers connect.php
49
+    if (
50
+        $port and !is_numeric($socket = $port)
51
+        and (!$host or $host == 'localhost')
52
+    ) {
53
+        $link = @mysqli_connect($host, $login, $pass, '', null, $socket);
54
+    }
55
+    elseif ($port) {
56
+        $link = @mysqli_connect($host, $login, $pass, '', $port);
57
+    }
58
+    else {
59
+        $link = @mysqli_connect($host, $login, $pass);
60
+    }
61
+
62
+    if (!$link) {
63
+        spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
64
+
65
+        return false;
66
+    }
67
+    $last = '';
68
+    if (!$db) {
69
+        $ok = $link;
70
+        $db = 'spip';
71
+    } else {
72
+        $ok = mysqli_select_db($link, $db);
73
+        if (
74
+            defined('_MYSQL_SET_SQL_MODE')
75
+            or defined('_MYSQL_SQL_MODE_TEXT_NOT_NULL') // compatibilite
76
+        ) {
77
+            mysqli_query($link, $last = "set sql_mode=''");
78
+        }
79
+    }
80
+
81
+    spip_log(
82
+        "Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
83
+        _LOG_DEBUG
84
+    );
85
+
86
+    return !$ok ? false : [
87
+        'db' => $db,
88
+        'last' => $last,
89
+        'prefixe' => $prefixe ? $prefixe : $db,
90
+        'link' => $link,
91
+        'total_requetes' => 0,
92
+    ];
93 93
 }
94 94
 
95 95
 
96 96
 $GLOBALS['spip_mysql_functions_1'] = [
97
-	'alter' => 'spip_mysql_alter',
98
-	'count' => 'spip_mysql_count',
99
-	'countsel' => 'spip_mysql_countsel',
100
-	'create' => 'spip_mysql_create',
101
-	'create_base' => 'spip_mysql_create_base',
102
-	'create_view' => 'spip_mysql_create_view',
103
-	'date_proche' => 'spip_mysql_date_proche',
104
-	'delete' => 'spip_mysql_delete',
105
-	'drop_table' => 'spip_mysql_drop_table',
106
-	'drop_view' => 'spip_mysql_drop_view',
107
-	'errno' => 'spip_mysql_errno',
108
-	'error' => 'spip_mysql_error',
109
-	'explain' => 'spip_mysql_explain',
110
-	'fetch' => 'spip_mysql_fetch',
111
-	'seek' => 'spip_mysql_seek',
112
-	'free' => 'spip_mysql_free',
113
-	'hex' => 'spip_mysql_hex',
114
-	'in' => 'spip_mysql_in',
115
-	'insert' => 'spip_mysql_insert',
116
-	'insertq' => 'spip_mysql_insertq',
117
-	'insertq_multi' => 'spip_mysql_insertq_multi',
118
-	'listdbs' => 'spip_mysql_listdbs',
119
-	'multi' => 'spip_mysql_multi',
120
-	'optimize' => 'spip_mysql_optimize',
121
-	'query' => 'spip_mysql_query',
122
-	'quote' => 'spip_mysql_quote',
123
-	'replace' => 'spip_mysql_replace',
124
-	'replace_multi' => 'spip_mysql_replace_multi',
125
-	'repair' => 'spip_mysql_repair',
126
-	'select' => 'spip_mysql_select',
127
-	'selectdb' => 'spip_mysql_selectdb',
128
-	'set_charset' => 'spip_mysql_set_charset',
129
-	'get_charset' => 'spip_mysql_get_charset',
130
-	'showbase' => 'spip_mysql_showbase',
131
-	'showtable' => 'spip_mysql_showtable',
132
-	'update' => 'spip_mysql_update',
133
-	'updateq' => 'spip_mysql_updateq',
134
-
135
-	// association de chaque nom http d'un charset aux couples MySQL
136
-	'charsets' => [
137
-		'cp1250' => ['charset' => 'cp1250', 'collation' => 'cp1250_general_ci'],
138
-		'cp1251' => ['charset' => 'cp1251', 'collation' => 'cp1251_general_ci'],
139
-		'cp1256' => ['charset' => 'cp1256', 'collation' => 'cp1256_general_ci'],
140
-		'iso-8859-1' => ['charset' => 'latin1', 'collation' => 'latin1_swedish_ci'],
97
+    'alter' => 'spip_mysql_alter',
98
+    'count' => 'spip_mysql_count',
99
+    'countsel' => 'spip_mysql_countsel',
100
+    'create' => 'spip_mysql_create',
101
+    'create_base' => 'spip_mysql_create_base',
102
+    'create_view' => 'spip_mysql_create_view',
103
+    'date_proche' => 'spip_mysql_date_proche',
104
+    'delete' => 'spip_mysql_delete',
105
+    'drop_table' => 'spip_mysql_drop_table',
106
+    'drop_view' => 'spip_mysql_drop_view',
107
+    'errno' => 'spip_mysql_errno',
108
+    'error' => 'spip_mysql_error',
109
+    'explain' => 'spip_mysql_explain',
110
+    'fetch' => 'spip_mysql_fetch',
111
+    'seek' => 'spip_mysql_seek',
112
+    'free' => 'spip_mysql_free',
113
+    'hex' => 'spip_mysql_hex',
114
+    'in' => 'spip_mysql_in',
115
+    'insert' => 'spip_mysql_insert',
116
+    'insertq' => 'spip_mysql_insertq',
117
+    'insertq_multi' => 'spip_mysql_insertq_multi',
118
+    'listdbs' => 'spip_mysql_listdbs',
119
+    'multi' => 'spip_mysql_multi',
120
+    'optimize' => 'spip_mysql_optimize',
121
+    'query' => 'spip_mysql_query',
122
+    'quote' => 'spip_mysql_quote',
123
+    'replace' => 'spip_mysql_replace',
124
+    'replace_multi' => 'spip_mysql_replace_multi',
125
+    'repair' => 'spip_mysql_repair',
126
+    'select' => 'spip_mysql_select',
127
+    'selectdb' => 'spip_mysql_selectdb',
128
+    'set_charset' => 'spip_mysql_set_charset',
129
+    'get_charset' => 'spip_mysql_get_charset',
130
+    'showbase' => 'spip_mysql_showbase',
131
+    'showtable' => 'spip_mysql_showtable',
132
+    'update' => 'spip_mysql_update',
133
+    'updateq' => 'spip_mysql_updateq',
134
+
135
+    // association de chaque nom http d'un charset aux couples MySQL
136
+    'charsets' => [
137
+        'cp1250' => ['charset' => 'cp1250', 'collation' => 'cp1250_general_ci'],
138
+        'cp1251' => ['charset' => 'cp1251', 'collation' => 'cp1251_general_ci'],
139
+        'cp1256' => ['charset' => 'cp1256', 'collation' => 'cp1256_general_ci'],
140
+        'iso-8859-1' => ['charset' => 'latin1', 'collation' => 'latin1_swedish_ci'],
141 141
 //'iso-8859-6'=>array('charset'=>'latin1','collation'=>'latin1_swedish_ci'),
142
-		'iso-8859-9' => ['charset' => 'latin5', 'collation' => 'latin5_turkish_ci'],
142
+        'iso-8859-9' => ['charset' => 'latin5', 'collation' => 'latin5_turkish_ci'],
143 143
 //'iso-8859-15'=>array('charset'=>'latin1','collation'=>'latin1_swedish_ci'),
144
-		'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci']
145
-	]
144
+        'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci']
145
+    ]
146 146
 ];
147 147
 
148 148
 
@@ -153,9 +153,9 @@  discard block
 block discarded – undo
153 153
  * @return Object Information de connexion pour mysqli
154 154
  */
155 155
 function _mysql_link($serveur = '') {
156
-	$link = &$GLOBALS['connexions'][$serveur ? $serveur : 0]['link'];
156
+    $link = &$GLOBALS['connexions'][$serveur ? $serveur : 0]['link'];
157 157
 
158
-	return $link;
158
+    return $link;
159 159
 }
160 160
 
161 161
 
@@ -168,10 +168,10 @@  discard block
 block discarded – undo
168 168
  * @return resource       Ressource de résultats pour fetch()
169 169
  */
170 170
 function spip_mysql_set_charset($charset, $serveur = '', $requeter = true) {
171
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
172
-	spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
171
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
172
+    spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
173 173
 
174
-	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
174
+    return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
175 175
 }
176 176
 
177 177
 
@@ -184,11 +184,11 @@  discard block
 block discarded – undo
184 184
  * @return array                Description du charset (son nom est dans 'charset')
185 185
  */
186 186
 function spip_mysql_get_charset($charset = [], $serveur = '', $requeter = true) {
187
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
188
-	$connexion['last'] = $c = 'SHOW CHARACTER SET'
189
-		. (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
187
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
188
+    $connexion['last'] = $c = 'SHOW CHARACTER SET'
189
+        . (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
190 190
 
191
-	return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
191
+    return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
192 192
 }
193 193
 
194 194
 /**
@@ -204,66 +204,66 @@  discard block
 block discarded – undo
204 204
  */
205 205
 function spip_mysql_query($query, $serveur = '', $requeter = true) {
206 206
 
207
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
208
-	$prefixe = $connexion['prefixe'];
209
-	$link = $connexion['link'];
210
-	$db = $connexion['db'];
211
-
212
-	$query = _mysql_traite_query($query, $db, $prefixe);
213
-
214
-	// renvoyer la requete inerte si demandee
215
-	if (!$requeter) {
216
-		return $query;
217
-	}
218
-
219
-	if (isset($_GET['var_profile']) or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
220
-		include_spip('public/tracer');
221
-		$t = trace_query_start();
222
-	} else {
223
-		$t = 0;
224
-	}
225
-
226
-	$connexion['last'] = $query;
227
-	$connexion['total_requetes']++;
228
-
229
-	// ajouter un debug utile dans log/mysql-slow.log ?
230
-	$debug = '';
231
-	if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
232
-		if (isset($GLOBALS['debug']['aucasou'])) {
233
-			list(, $id, , $infos) = $GLOBALS['debug']['aucasou'];
234
-			$debug .= "BOUCLE$id @ " . (isset($infos[0]) ? $infos[0] : '') . ' | ';
235
-		}
236
-		if (isset($_SERVER['REQUEST_URI'])) {
237
-			$debug .= $_SERVER['REQUEST_URI'];
238
-		}
239
-		if (!empty($GLOBALS['ip'])) {
240
-			$debug .= ' + ' . $GLOBALS['ip'];
241
-		}
242
-		$debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
243
-	}
244
-
245
-	$r = mysqli_query($link, $query . $debug);
246
-
247
-	//Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
248
-	if ($e = spip_mysql_errno($serveur)) {  // Log d'un Gone Away
249
-		if ($e == 2006) { //Si Gone Away on relance une connexion vierge
250
-			//Fermer la connexion defaillante
251
-			mysqli_close($connexion['link']);
252
-			unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
253
-			//Relancer une connexion vierge
254
-			spip_connect($serveur);
255
-			$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
256
-			$link = $connexion['link'];
257
-			//On retente au cas où
258
-			$r = mysqli_query($link, $query . $debug);
259
-		}
260
-	}
261
-
262
-	// Log de l'erreur eventuelle
263
-	if ($e = spip_mysql_errno($serveur)) {
264
-		$e .= spip_mysql_error($query, $serveur);
265
-	} // et du fautif
266
-	return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
207
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
208
+    $prefixe = $connexion['prefixe'];
209
+    $link = $connexion['link'];
210
+    $db = $connexion['db'];
211
+
212
+    $query = _mysql_traite_query($query, $db, $prefixe);
213
+
214
+    // renvoyer la requete inerte si demandee
215
+    if (!$requeter) {
216
+        return $query;
217
+    }
218
+
219
+    if (isset($_GET['var_profile']) or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
220
+        include_spip('public/tracer');
221
+        $t = trace_query_start();
222
+    } else {
223
+        $t = 0;
224
+    }
225
+
226
+    $connexion['last'] = $query;
227
+    $connexion['total_requetes']++;
228
+
229
+    // ajouter un debug utile dans log/mysql-slow.log ?
230
+    $debug = '';
231
+    if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
232
+        if (isset($GLOBALS['debug']['aucasou'])) {
233
+            list(, $id, , $infos) = $GLOBALS['debug']['aucasou'];
234
+            $debug .= "BOUCLE$id @ " . (isset($infos[0]) ? $infos[0] : '') . ' | ';
235
+        }
236
+        if (isset($_SERVER['REQUEST_URI'])) {
237
+            $debug .= $_SERVER['REQUEST_URI'];
238
+        }
239
+        if (!empty($GLOBALS['ip'])) {
240
+            $debug .= ' + ' . $GLOBALS['ip'];
241
+        }
242
+        $debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
243
+    }
244
+
245
+    $r = mysqli_query($link, $query . $debug);
246
+
247
+    //Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
248
+    if ($e = spip_mysql_errno($serveur)) {  // Log d'un Gone Away
249
+        if ($e == 2006) { //Si Gone Away on relance une connexion vierge
250
+            //Fermer la connexion defaillante
251
+            mysqli_close($connexion['link']);
252
+            unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
253
+            //Relancer une connexion vierge
254
+            spip_connect($serveur);
255
+            $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
256
+            $link = $connexion['link'];
257
+            //On retente au cas où
258
+            $r = mysqli_query($link, $query . $debug);
259
+        }
260
+    }
261
+
262
+    // Log de l'erreur eventuelle
263
+    if ($e = spip_mysql_errno($serveur)) {
264
+        $e .= spip_mysql_error($query, $serveur);
265
+    } // et du fautif
266
+    return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
267 267
 }
268 268
 
269 269
 /**
@@ -278,12 +278,12 @@  discard block
 block discarded – undo
278 278
  *     - array  : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
279 279
  */
280 280
 function spip_mysql_alter($query, $serveur = '', $requeter = true) {
281
-	// ici on supprime les ` entourant le nom de table pour permettre
282
-	// la transposition du prefixe, compte tenu que les plugins ont la mauvaise habitude
283
-	// d'utiliser ceux-ci, copie-colle de phpmyadmin
284
-	$query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
281
+    // ici on supprime les ` entourant le nom de table pour permettre
282
+    // la transposition du prefixe, compte tenu que les plugins ont la mauvaise habitude
283
+    // d'utiliser ceux-ci, copie-colle de phpmyadmin
284
+    $query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
285 285
 
286
-	return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
286
+    return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
287 287
 }
288 288
 
289 289
 
@@ -296,9 +296,9 @@  discard block
 block discarded – undo
296 296
  * @return bool            Toujours true
297 297
  */
298 298
 function spip_mysql_optimize($table, $serveur = '', $requeter = true) {
299
-	spip_mysql_query('OPTIMIZE TABLE ' . $table);
299
+    spip_mysql_query('OPTIMIZE TABLE ' . $table);
300 300
 
301
-	return true;
301
+    return true;
302 302
 }
303 303
 
304 304
 
@@ -311,18 +311,18 @@  discard block
 block discarded – undo
311 311
  * @return array           Tableau de l'explication
312 312
  */
313 313
 function spip_mysql_explain($query, $serveur = '', $requeter = true) {
314
-	if (strpos(ltrim($query), 'SELECT') !== 0) {
315
-		return [];
316
-	}
317
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
318
-	$prefixe = $connexion['prefixe'];
319
-	$link = $connexion['link'];
320
-	$db = $connexion['db'];
321
-
322
-	$query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
323
-	$r = mysqli_query($link, $query);
324
-
325
-	return spip_mysql_fetch($r, null, $serveur);
314
+    if (strpos(ltrim($query), 'SELECT') !== 0) {
315
+        return [];
316
+    }
317
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
318
+    $prefixe = $connexion['prefixe'];
319
+    $link = $connexion['link'];
320
+    $db = $connexion['db'];
321
+
322
+    $query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
323
+    $r = mysqli_query($link, $query);
324
+
325
+    return spip_mysql_fetch($r, null, $serveur);
326 326
 }
327 327
 
328 328
 
@@ -351,35 +351,35 @@  discard block
 block discarded – undo
351 351
  *     - array  : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
352 352
  */
353 353
 function spip_mysql_select(
354
-	$select,
355
-	$from,
356
-	$where = '',
357
-	$groupby = '',
358
-	$orderby = '',
359
-	$limit = '',
360
-	$having = '',
361
-	$serveur = '',
362
-	$requeter = true
354
+    $select,
355
+    $from,
356
+    $where = '',
357
+    $groupby = '',
358
+    $orderby = '',
359
+    $limit = '',
360
+    $having = '',
361
+    $serveur = '',
362
+    $requeter = true
363 363
 ) {
364 364
 
365 365
 
366
-	$from = (!is_array($from) ? $from : spip_mysql_select_as($from));
367
-	$query =
368
-		calculer_mysql_expression('SELECT', $select, ', ')
369
-		. calculer_mysql_expression('FROM', $from, ', ')
370
-		. calculer_mysql_expression('WHERE', $where)
371
-		. calculer_mysql_expression('GROUP BY', $groupby, ',')
372
-		. calculer_mysql_expression('HAVING', $having)
373
-		. ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
374
-		. ($limit ? "\nLIMIT $limit" : '');
366
+    $from = (!is_array($from) ? $from : spip_mysql_select_as($from));
367
+    $query =
368
+        calculer_mysql_expression('SELECT', $select, ', ')
369
+        . calculer_mysql_expression('FROM', $from, ', ')
370
+        . calculer_mysql_expression('WHERE', $where)
371
+        . calculer_mysql_expression('GROUP BY', $groupby, ',')
372
+        . calculer_mysql_expression('HAVING', $having)
373
+        . ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
374
+        . ($limit ? "\nLIMIT $limit" : '');
375 375
 
376
-	// renvoyer la requete inerte si demandee
377
-	if ($requeter === false) {
378
-		return $query;
379
-	}
380
-	$r = spip_mysql_query($query, $serveur, $requeter);
376
+    // renvoyer la requete inerte si demandee
377
+    if ($requeter === false) {
378
+        return $query;
379
+    }
380
+    $r = spip_mysql_query($query, $serveur, $requeter);
381 381
 
382
-	return $r ? $r : $query;
382
+    return $r ? $r : $query;
383 383
 }
384 384
 
385 385
 
@@ -396,7 +396,7 @@  discard block
 block discarded – undo
396 396
  * @return string Texte du orderby préparé
397 397
  */
398 398
 function spip_mysql_order($orderby) {
399
-	return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
399
+    return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
400 400
 }
401 401
 
402 402
 
@@ -419,26 +419,26 @@  discard block
 block discarded – undo
419 419
  *     Contrainte pour clause WHERE
420 420
  */
421 421
 function calculer_mysql_where($v) {
422
-	if (!is_array($v)) {
423
-		return $v;
424
-	}
425
-
426
-	$op = array_shift($v);
427
-	if (!($n = count($v))) {
428
-		return $op;
429
-	} else {
430
-		$arg = calculer_mysql_where(array_shift($v));
431
-		if ($n == 1) {
432
-			return "$op($arg)";
433
-		} else {
434
-			$arg2 = calculer_mysql_where(array_shift($v));
435
-			if ($n == 2) {
436
-				return "($arg $op $arg2)";
437
-			} else {
438
-				return "($arg $op ($arg2) : $v[0])";
439
-			}
440
-		}
441
-	}
422
+    if (!is_array($v)) {
423
+        return $v;
424
+    }
425
+
426
+    $op = array_shift($v);
427
+    if (!($n = count($v))) {
428
+        return $op;
429
+    } else {
430
+        $arg = calculer_mysql_where(array_shift($v));
431
+        if ($n == 1) {
432
+            return "$op($arg)";
433
+        } else {
434
+            $arg2 = calculer_mysql_where(array_shift($v));
435
+            if ($n == 2) {
436
+                return "($arg $op $arg2)";
437
+            } else {
438
+                return "($arg $op ($arg2) : $v[0])";
439
+            }
440
+        }
441
+    }
442 442
 }
443 443
 
444 444
 /**
@@ -453,21 +453,21 @@  discard block
 block discarded – undo
453 453
  * @return string            Texte de l'expression, une partie donc, du texte la requête.
454 454
  */
455 455
 function calculer_mysql_expression($expression, $v, $join = 'AND') {
456
-	if (empty($v)) {
457
-		return '';
458
-	}
459
-
460
-	$exp = "\n$expression ";
461
-
462
-	if (!is_array($v)) {
463
-		return $exp . $v;
464
-	} else {
465
-		if (strtoupper($join) === 'AND') {
466
-			return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
467
-		} else {
468
-			return $exp . join($join, $v);
469
-		}
470
-	}
456
+    if (empty($v)) {
457
+        return '';
458
+    }
459
+
460
+    $exp = "\n$expression ";
461
+
462
+    if (!is_array($v)) {
463
+        return $exp . $v;
464
+    } else {
465
+        if (strtoupper($join) === 'AND') {
466
+            return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
467
+        } else {
468
+            return $exp . join($join, $v);
469
+        }
470
+    }
471 471
 }
472 472
 
473 473
 
@@ -478,26 +478,26 @@  discard block
 block discarded – undo
478 478
  * @return string Sélection de colonnes pour une clause SELECT
479 479
  */
480 480
 function spip_mysql_select_as($args) {
481
-	$res = '';
482
-	foreach ($args as $k => $v) {
483
-		if (substr($k, -1) == '@') {
484
-			// c'est une jointure qui se refere au from precedent
485
-			// pas de virgule
486
-			$res .= '  ' . $v;
487
-		} else {
488
-			if (!is_numeric($k)) {
489
-				$p = strpos($v, ' ');
490
-				if ($p) {
491
-					$v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
492
-				} else {
493
-					$v .= " AS `$k`";
494
-				}
495
-			}
496
-			$res .= ', ' . $v;
497
-		}
498
-	}
499
-
500
-	return substr($res, 2);
481
+    $res = '';
482
+    foreach ($args as $k => $v) {
483
+        if (substr($k, -1) == '@') {
484
+            // c'est une jointure qui se refere au from precedent
485
+            // pas de virgule
486
+            $res .= '  ' . $v;
487
+        } else {
488
+            if (!is_numeric($k)) {
489
+                $p = strpos($v, ' ');
490
+                if ($p) {
491
+                    $v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
492
+                } else {
493
+                    $v .= " AS `$k`";
494
+                }
495
+            }
496
+            $res .= ', ' . $v;
497
+        }
498
+    }
499
+
500
+    return substr($res, 2);
501 501
 }
502 502
 
503 503
 
@@ -522,58 +522,58 @@  discard block
 block discarded – undo
522 522
  */
523 523
 function _mysql_traite_query($query, $db = '', $prefixe = '', $echappe_textes = true) {
524 524
 
525
-	if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
526
-		$pref = '`' . $db . '`.';
527
-	} else {
528
-		$pref = '';
529
-	}
530
-
531
-	if ($prefixe) {
532
-		$pref .= $prefixe . '_';
533
-	}
534
-
535
-	if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
536
-		$suite = '';
537
-	} else {
538
-		$suite = strstr($query, $regs[0]);
539
-		$query = substr($query, 0, -strlen($suite));
540
-		// propager le prefixe en cas de requete imbriquee
541
-		// il faut alors echapper les chaine avant de le faire, pour ne pas risquer de
542
-		// modifier une requete qui est en fait juste du texte dans un champ
543
-		if (stripos($suite, 'SELECT') !== false) {
544
-			if ($echappe_textes) {
545
-				list($suite_echap, $textes) = query_echappe_textes($suite);
546
-			}
547
-			else {
548
-				$suite_echap = $suite;
549
-			}
550
-			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
551
-				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
552
-				if ($echappe_textes) {
553
-					$suite = query_reinjecte_textes($suite_echap, $textes);
554
-				}
555
-				else {
556
-					$suite = $suite_echap;
557
-				}
558
-			}
559
-		}
560
-	}
561
-	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
562
-
563
-	// en option, remplacer les emoji (que mysql ne sait pas gérer) en 💩
564
-	// remplacer les emoji (que mysql ne sait pas gérer) en 💩
565
-	if (
566
-		defined('_MYSQL_NOPLANES')
567
-		and _MYSQL_NOPLANES
568
-		and !empty($GLOBALS['meta']['charset_sql_connexion'])
569
-		and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
570
-	) {
571
-		include_spip('inc/charsets');
572
-		$r = utf8_noplanes($r);
573
-	}
574
-
575
-	#spip_log("_mysql_traite_query: " . substr($r,0, 50) . ".... $db, $prefixe", _LOG_DEBUG);
576
-	return $r;
525
+    if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
526
+        $pref = '`' . $db . '`.';
527
+    } else {
528
+        $pref = '';
529
+    }
530
+
531
+    if ($prefixe) {
532
+        $pref .= $prefixe . '_';
533
+    }
534
+
535
+    if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
536
+        $suite = '';
537
+    } else {
538
+        $suite = strstr($query, $regs[0]);
539
+        $query = substr($query, 0, -strlen($suite));
540
+        // propager le prefixe en cas de requete imbriquee
541
+        // il faut alors echapper les chaine avant de le faire, pour ne pas risquer de
542
+        // modifier une requete qui est en fait juste du texte dans un champ
543
+        if (stripos($suite, 'SELECT') !== false) {
544
+            if ($echappe_textes) {
545
+                list($suite_echap, $textes) = query_echappe_textes($suite);
546
+            }
547
+            else {
548
+                $suite_echap = $suite;
549
+            }
550
+            if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
551
+                $suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
552
+                if ($echappe_textes) {
553
+                    $suite = query_reinjecte_textes($suite_echap, $textes);
554
+                }
555
+                else {
556
+                    $suite = $suite_echap;
557
+                }
558
+            }
559
+        }
560
+    }
561
+    $r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
562
+
563
+    // en option, remplacer les emoji (que mysql ne sait pas gérer) en 💩
564
+    // remplacer les emoji (que mysql ne sait pas gérer) en 💩
565
+    if (
566
+        defined('_MYSQL_NOPLANES')
567
+        and _MYSQL_NOPLANES
568
+        and !empty($GLOBALS['meta']['charset_sql_connexion'])
569
+        and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
570
+    ) {
571
+        include_spip('inc/charsets');
572
+        $r = utf8_noplanes($r);
573
+    }
574
+
575
+    #spip_log("_mysql_traite_query: " . substr($r,0, 50) . ".... $db, $prefixe", _LOG_DEBUG);
576
+    return $r;
577 577
 }
578 578
 
579 579
 /**
@@ -591,13 +591,13 @@  discard block
 block discarded – undo
591 591
  *     - False en cas d'erreur.
592 592
  **/
593 593
 function spip_mysql_selectdb($db, $serveur = '', $requeter = true) {
594
-	$link = _mysql_link($serveur);
595
-	$ok = mysqli_select_db($link, $db);
596
-	if (!$ok) {
597
-		spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
598
-	}
594
+    $link = _mysql_link($serveur);
595
+    $ok = mysqli_select_db($link, $db);
596
+    if (!$ok) {
597
+        spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
598
+    }
599 599
 
600
-	return $ok;
600
+    return $ok;
601 601
 }
602 602
 
603 603
 
@@ -618,14 +618,14 @@  discard block
 block discarded – undo
618 618
  *     Liste de noms de bases de données
619 619
  **/
620 620
 function spip_mysql_listdbs($serveur = '', $requeter = true) {
621
-	$dbs = [];
622
-	if ($res = spip_mysql_query('SHOW DATABASES', $serveur)) {
623
-		while ($row = mysqli_fetch_assoc($res)) {
624
-			$dbs[] = $row['Database'];
625
-		}
626
-	}
627
-
628
-	return $dbs;
621
+    $dbs = [];
622
+    if ($res = spip_mysql_query('SHOW DATABASES', $serveur)) {
623
+        while ($row = mysqli_fetch_assoc($res)) {
624
+            $dbs[] = $row['Database'];
625
+        }
626
+    }
627
+
628
+    return $dbs;
629 629
 }
630 630
 
631 631
 
@@ -648,73 +648,73 @@  discard block
 block discarded – undo
648 648
  *     - true si la requête réussie, false sinon.
649 649
  */
650 650
 function spip_mysql_create(
651
-	$nom,
652
-	$champs,
653
-	$cles,
654
-	$autoinc = false,
655
-	$temporary = false,
656
-	$serveur = '',
657
-	$requeter = true
651
+    $nom,
652
+    $champs,
653
+    $cles,
654
+    $autoinc = false,
655
+    $temporary = false,
656
+    $serveur = '',
657
+    $requeter = true
658 658
 ) {
659 659
 
660
-	$query = '';
661
-	$keys = '';
662
-	$s = '';
663
-	$p = '';
664
-
665
-	// certains plugins declarent les tables  (permet leur inclusion dans le dump)
666
-	// sans les renseigner (laisse le compilo recuperer la description)
667
-	if (!is_array($champs) || !is_array($cles)) {
668
-		return;
669
-	}
670
-
671
-	$res = spip_mysql_query('SELECT version() as v', $serveur);
672
-	if (($row = mysqli_fetch_array($res)) && (version_compare($row['v'], '5.0', '>='))) {
673
-		spip_mysql_query("SET sql_mode=''", $serveur);
674
-	}
675
-
676
-	foreach ($cles as $k => $v) {
677
-		$keys .= "$s\n\t\t$k ($v)";
678
-		if ($k == 'PRIMARY KEY') {
679
-			$p = $v;
680
-		}
681
-		$s = ',';
682
-	}
683
-	$s = '';
684
-
685
-	$character_set = '';
686
-	if (@$GLOBALS['meta']['charset_sql_base']) {
687
-		$character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
688
-	}
689
-	if (@$GLOBALS['meta']['charset_collation_sql_base']) {
690
-		$character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
691
-	}
692
-
693
-	foreach ($champs as $k => $v) {
694
-		$v = _mysql_remplacements_definitions_table($v);
695
-		if (preg_match(',([a-z]*\s*(\(\s*[0-9]*\s*\))?(\s*binary)?),i', $v, $defs)) {
696
-			if (
697
-				preg_match(',(char|text),i', $defs[1])
698
-				and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
699
-			) {
700
-				$v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
701
-			}
702
-		}
703
-
704
-		$query .= "$s\n\t\t$k $v"
705
-			. (($autoinc && ($p == $k) && preg_match(',\b(big|small|medium)?int\b,i', $v))
706
-				? ' auto_increment'
707
-				: ''
708
-			);
709
-		$s = ',';
710
-	}
711
-	$temporary = $temporary ? 'TEMPORARY' : '';
712
-	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
713
-		. ' ENGINE=MyISAM'
714
-		. ($character_set ? " DEFAULT $character_set" : '')
715
-		. "\n";
716
-
717
-	return spip_mysql_query($q, $serveur);
660
+    $query = '';
661
+    $keys = '';
662
+    $s = '';
663
+    $p = '';
664
+
665
+    // certains plugins declarent les tables  (permet leur inclusion dans le dump)
666
+    // sans les renseigner (laisse le compilo recuperer la description)
667
+    if (!is_array($champs) || !is_array($cles)) {
668
+        return;
669
+    }
670
+
671
+    $res = spip_mysql_query('SELECT version() as v', $serveur);
672
+    if (($row = mysqli_fetch_array($res)) && (version_compare($row['v'], '5.0', '>='))) {
673
+        spip_mysql_query("SET sql_mode=''", $serveur);
674
+    }
675
+
676
+    foreach ($cles as $k => $v) {
677
+        $keys .= "$s\n\t\t$k ($v)";
678
+        if ($k == 'PRIMARY KEY') {
679
+            $p = $v;
680
+        }
681
+        $s = ',';
682
+    }
683
+    $s = '';
684
+
685
+    $character_set = '';
686
+    if (@$GLOBALS['meta']['charset_sql_base']) {
687
+        $character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
688
+    }
689
+    if (@$GLOBALS['meta']['charset_collation_sql_base']) {
690
+        $character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
691
+    }
692
+
693
+    foreach ($champs as $k => $v) {
694
+        $v = _mysql_remplacements_definitions_table($v);
695
+        if (preg_match(',([a-z]*\s*(\(\s*[0-9]*\s*\))?(\s*binary)?),i', $v, $defs)) {
696
+            if (
697
+                preg_match(',(char|text),i', $defs[1])
698
+                and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
699
+            ) {
700
+                $v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
701
+            }
702
+        }
703
+
704
+        $query .= "$s\n\t\t$k $v"
705
+            . (($autoinc && ($p == $k) && preg_match(',\b(big|small|medium)?int\b,i', $v))
706
+                ? ' auto_increment'
707
+                : ''
708
+            );
709
+        $s = ',';
710
+    }
711
+    $temporary = $temporary ? 'TEMPORARY' : '';
712
+    $q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
713
+        . ' ENGINE=MyISAM'
714
+        . ($character_set ? " DEFAULT $character_set" : '')
715
+        . "\n";
716
+
717
+    return spip_mysql_query($q, $serveur);
718 718
 }
719 719
 
720 720
 
@@ -727,25 +727,25 @@  discard block
 block discarded – undo
727 727
  *     Définition SQL adaptée pour MySQL d'un champ de table
728 728
  */
729 729
 function _mysql_remplacements_definitions_table($query) {
730
-	// quelques remplacements
731
-	$num = '(\s*\([0-9]*\))?';
732
-	$enum = '(\s*\([^\)]*\))?';
733
-
734
-	$remplace = [
735
-		'/VARCHAR(\s*[^\s\(])/is' => 'VARCHAR(255)\\1',
736
-		'/^TIMESTAMP($| NULL DEFAULT NULL)/is' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
737
-	];
738
-
739
-	if (is_string($query)) {
740
-		$query = preg_replace(array_keys($remplace), $remplace, $query);
741
-	} elseif (is_array($query)) {
742
-		$keys = array_keys($remplace);
743
-		foreach ($query as $k => $q) {
744
-			$query[$k] = preg_replace($keys, $remplace, $q);
745
-		}
746
-	}
747
-
748
-	return $query;
730
+    // quelques remplacements
731
+    $num = '(\s*\([0-9]*\))?';
732
+    $enum = '(\s*\([^\)]*\))?';
733
+
734
+    $remplace = [
735
+        '/VARCHAR(\s*[^\s\(])/is' => 'VARCHAR(255)\\1',
736
+        '/^TIMESTAMP($| NULL DEFAULT NULL)/is' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
737
+    ];
738
+
739
+    if (is_string($query)) {
740
+        $query = preg_replace(array_keys($remplace), $remplace, $query);
741
+    } elseif (is_array($query)) {
742
+        $keys = array_keys($remplace);
743
+        foreach ($query as $k => $q) {
744
+            $query[$k] = preg_replace($keys, $remplace, $q);
745
+        }
746
+    }
747
+
748
+    return $query;
749 749
 }
750 750
 
751 751
 
@@ -758,7 +758,7 @@  discard block
 block discarded – undo
758 758
  * @return bool true si la base est créee.
759 759
  **/
760 760
 function spip_mysql_create_base($nom, $serveur = '', $requeter = true) {
761
-	return spip_mysql_query("CREATE DATABASE `$nom`", $serveur, $requeter);
761
+    return spip_mysql_query("CREATE DATABASE `$nom`", $serveur, $requeter);
762 762
 }
763 763
 
764 764
 
@@ -779,19 +779,19 @@  discard block
 block discarded – undo
779 779
  *     - string texte de la requête si $requeter vaut false
780 780
  */
781 781
 function spip_mysql_create_view($nom, $query_select, $serveur = '', $requeter = true) {
782
-	if (!$query_select) {
783
-		return false;
784
-	}
785
-	// vue deja presente
786
-	if (sql_showtable($nom, false, $serveur)) {
787
-		spip_log("Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)", _LOG_ERREUR);
782
+    if (!$query_select) {
783
+        return false;
784
+    }
785
+    // vue deja presente
786
+    if (sql_showtable($nom, false, $serveur)) {
787
+        spip_log("Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)", _LOG_ERREUR);
788 788
 
789
-		return false;
790
-	}
789
+        return false;
790
+    }
791 791
 
792
-	$query = "CREATE VIEW $nom AS " . $query_select;
792
+    $query = "CREATE VIEW $nom AS " . $query_select;
793 793
 
794
-	return spip_mysql_query($query, $serveur, $requeter);
794
+    return spip_mysql_query($query, $serveur, $requeter);
795 795
 }
796 796
 
797 797
 
@@ -807,11 +807,11 @@  discard block
 block discarded – undo
807 807
  *     - true si la requête a réussie, false sinon
808 808
  */
809 809
 function spip_mysql_drop_table($table, $exist = '', $serveur = '', $requeter = true) {
810
-	if ($exist) {
811
-		$exist = ' IF EXISTS';
812
-	}
810
+    if ($exist) {
811
+        $exist = ' IF EXISTS';
812
+    }
813 813
 
814
-	return spip_mysql_query("DROP TABLE$exist $table", $serveur, $requeter);
814
+    return spip_mysql_query("DROP TABLE$exist $table", $serveur, $requeter);
815 815
 }
816 816
 
817 817
 /**
@@ -826,11 +826,11 @@  discard block
 block discarded – undo
826 826
  *     - true si la requête a réussie, false sinon
827 827
  */
828 828
 function spip_mysql_drop_view($view, $exist = '', $serveur = '', $requeter = true) {
829
-	if ($exist) {
830
-		$exist = ' IF EXISTS';
831
-	}
829
+    if ($exist) {
830
+        $exist = ' IF EXISTS';
831
+    }
832 832
 
833
-	return spip_mysql_query("DROP VIEW$exist $view", $serveur, $requeter);
833
+    return spip_mysql_query("DROP VIEW$exist $view", $serveur, $requeter);
834 834
 }
835 835
 
836 836
 /**
@@ -847,7 +847,7 @@  discard block
 block discarded – undo
847 847
  *     Ressource à utiliser avec sql_fetch()
848 848
  **/
849 849
 function spip_mysql_showbase($match, $serveur = '', $requeter = true) {
850
-	return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
850
+    return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
851 851
 }
852 852
 
853 853
 /**
@@ -863,7 +863,7 @@  discard block
 block discarded – undo
863 863
  *     - true si la requête a réussie, false sinon
864 864
  */
865 865
 function spip_mysql_repair($table, $serveur = '', $requeter = true) {
866
-	return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
866
+    return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
867 867
 }
868 868
 
869 869
 
@@ -887,86 +887,86 @@  discard block
 block discarded – undo
887 887
  *     - array description de la table sinon
888 888
  */
889 889
 function spip_mysql_showtable($nom_table, $serveur = '', $requeter = true) {
890
-	$s = spip_mysql_query("SHOW CREATE TABLE `$nom_table`", $serveur, $requeter);
891
-	if (!$s) {
892
-		return '';
893
-	}
894
-	if (!$requeter) {
895
-		return $s;
896
-	}
897
-
898
-	list(, $a) = mysqli_fetch_array($s, MYSQLI_NUM);
899
-	if (preg_match(_MYSQL_RE_SHOW_TABLE, $a, $r)) {
900
-		$desc = $r[1];
901
-		// extraction d'une KEY éventuelle en prenant garde de ne pas
902
-		// relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
903
-		if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
904
-			$namedkeys = $r[2];
905
-			$desc = $r[1];
906
-		} else {
907
-			$namedkeys = '';
908
-		}
909
-
910
-		$fields = [];
911
-		foreach (preg_split('/,\s*`/', $desc) as $v) {
912
-			preg_match('/^\s*`?([^`]*)`\s*(.*)/', $v, $r);
913
-			$fields[strtolower($r[1])] = $r[2];
914
-		}
915
-		$keys = [];
916
-
917
-		foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
918
-			if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
919
-				$k = str_replace('`', '', trim($r[1]));
920
-				$t = strtolower(str_replace('`', '', $r[2]));
921
-				if ($k && !isset($keys[$k])) {
922
-					$keys[$k] = $t;
923
-				} else {
924
-					$keys[] = $t;
925
-				}
926
-			}
927
-		}
928
-		spip_mysql_free($s);
929
-
930
-		return ['field' => $fields, 'key' => $keys];
931
-	}
932
-
933
-	$res = spip_mysql_query("SHOW COLUMNS FROM `$nom_table`", $serveur);
934
-	if ($res) {
935
-		$nfields = [];
936
-		$nkeys = [];
937
-		while ($val = spip_mysql_fetch($res)) {
938
-			$nfields[$val['Field']] = $val['Type'];
939
-			if ($val['Null'] == 'NO') {
940
-				$nfields[$val['Field']] .= ' NOT NULL';
941
-			}
942
-			if ($val['Default'] === '0' || $val['Default']) {
943
-				if (preg_match('/[A-Z_]/', $val['Default'])) {
944
-					$nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
945
-				} else {
946
-					$nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
947
-				}
948
-			}
949
-			if ($val['Extra']) {
950
-				$nfields[$val['Field']] .= ' ' . $val['Extra'];
951
-			}
952
-			if ($val['Key'] == 'PRI') {
953
-				$nkeys['PRIMARY KEY'] = $val['Field'];
954
-			} else {
955
-				if ($val['Key'] == 'MUL') {
956
-					$nkeys['KEY ' . $val['Field']] = $val['Field'];
957
-				} else {
958
-					if ($val['Key'] == 'UNI') {
959
-						$nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
960
-					}
961
-				}
962
-			}
963
-		}
964
-		spip_mysql_free($res);
965
-
966
-		return ['field' => $nfields, 'key' => $nkeys];
967
-	}
968
-
969
-	return '';
890
+    $s = spip_mysql_query("SHOW CREATE TABLE `$nom_table`", $serveur, $requeter);
891
+    if (!$s) {
892
+        return '';
893
+    }
894
+    if (!$requeter) {
895
+        return $s;
896
+    }
897
+
898
+    list(, $a) = mysqli_fetch_array($s, MYSQLI_NUM);
899
+    if (preg_match(_MYSQL_RE_SHOW_TABLE, $a, $r)) {
900
+        $desc = $r[1];
901
+        // extraction d'une KEY éventuelle en prenant garde de ne pas
902
+        // relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
903
+        if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
904
+            $namedkeys = $r[2];
905
+            $desc = $r[1];
906
+        } else {
907
+            $namedkeys = '';
908
+        }
909
+
910
+        $fields = [];
911
+        foreach (preg_split('/,\s*`/', $desc) as $v) {
912
+            preg_match('/^\s*`?([^`]*)`\s*(.*)/', $v, $r);
913
+            $fields[strtolower($r[1])] = $r[2];
914
+        }
915
+        $keys = [];
916
+
917
+        foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
918
+            if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
919
+                $k = str_replace('`', '', trim($r[1]));
920
+                $t = strtolower(str_replace('`', '', $r[2]));
921
+                if ($k && !isset($keys[$k])) {
922
+                    $keys[$k] = $t;
923
+                } else {
924
+                    $keys[] = $t;
925
+                }
926
+            }
927
+        }
928
+        spip_mysql_free($s);
929
+
930
+        return ['field' => $fields, 'key' => $keys];
931
+    }
932
+
933
+    $res = spip_mysql_query("SHOW COLUMNS FROM `$nom_table`", $serveur);
934
+    if ($res) {
935
+        $nfields = [];
936
+        $nkeys = [];
937
+        while ($val = spip_mysql_fetch($res)) {
938
+            $nfields[$val['Field']] = $val['Type'];
939
+            if ($val['Null'] == 'NO') {
940
+                $nfields[$val['Field']] .= ' NOT NULL';
941
+            }
942
+            if ($val['Default'] === '0' || $val['Default']) {
943
+                if (preg_match('/[A-Z_]/', $val['Default'])) {
944
+                    $nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
945
+                } else {
946
+                    $nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
947
+                }
948
+            }
949
+            if ($val['Extra']) {
950
+                $nfields[$val['Field']] .= ' ' . $val['Extra'];
951
+            }
952
+            if ($val['Key'] == 'PRI') {
953
+                $nkeys['PRIMARY KEY'] = $val['Field'];
954
+            } else {
955
+                if ($val['Key'] == 'MUL') {
956
+                    $nkeys['KEY ' . $val['Field']] = $val['Field'];
957
+                } else {
958
+                    if ($val['Key'] == 'UNI') {
959
+                        $nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
960
+                    }
961
+                }
962
+            }
963
+        }
964
+        spip_mysql_free($res);
965
+
966
+        return ['field' => $nfields, 'key' => $nkeys];
967
+    }
968
+
969
+    return '';
970 970
 }
971 971
 
972 972
 
@@ -982,12 +982,12 @@  discard block
 block discarded – undo
982 982
  * @return array           Ligne de résultat
983 983
  */
984 984
 function spip_mysql_fetch($r, $t = '', $serveur = '', $requeter = true) {
985
-	if (!$t) {
986
-		$t = MYSQLI_ASSOC;
987
-	}
988
-	if ($r) {
989
-		return mysqli_fetch_array($r, $t);
990
-	}
985
+    if (!$t) {
986
+        $t = MYSQLI_ASSOC;
987
+    }
988
+    if ($r) {
989
+        return mysqli_fetch_array($r, $t);
990
+    }
991 991
 }
992 992
 
993 993
 /**
@@ -1000,9 +1000,9 @@  discard block
 block discarded – undo
1000 1000
  * @return bool True si déplacement réussi, false sinon.
1001 1001
  **/
1002 1002
 function spip_mysql_seek($r, $row_number, $serveur = '', $requeter = true) {
1003
-	if ($r and mysqli_num_rows($r)) {
1004
-		return mysqli_data_seek($r, $row_number);
1005
-	}
1003
+    if ($r and mysqli_num_rows($r)) {
1004
+        return mysqli_data_seek($r, $row_number);
1005
+    }
1006 1006
 }
1007 1007
 
1008 1008
 
@@ -1020,26 +1020,26 @@  discard block
 block discarded – undo
1020 1020
  *     - int Nombre de lignes (0 si la requête n'a pas réussie)
1021 1021
  **/
1022 1022
 function spip_mysql_countsel(
1023
-	$from = [],
1024
-	$where = [],
1025
-	$groupby = '',
1026
-	$having = [],
1027
-	$serveur = '',
1028
-	$requeter = true
1023
+    $from = [],
1024
+    $where = [],
1025
+    $groupby = '',
1026
+    $having = [],
1027
+    $serveur = '',
1028
+    $requeter = true
1029 1029
 ) {
1030
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1031
-
1032
-	$r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1033
-	if (!$requeter) {
1034
-		return $r;
1035
-	}
1036
-	if (!$r instanceof mysqli_result) {
1037
-		return 0;
1038
-	}
1039
-	list($c) = mysqli_fetch_array($r, MYSQLI_NUM);
1040
-	mysqli_free_result($r);
1041
-
1042
-	return $c;
1030
+    $c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1031
+
1032
+    $r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1033
+    if (!$requeter) {
1034
+        return $r;
1035
+    }
1036
+    if (!$r instanceof mysqli_result) {
1037
+        return 0;
1038
+    }
1039
+    list($c) = mysqli_fetch_array($r, MYSQLI_NUM);
1040
+    mysqli_free_result($r);
1041
+
1042
+    return $c;
1043 1043
 }
1044 1044
 
1045 1045
 
@@ -1062,16 +1062,16 @@  discard block
 block discarded – undo
1062 1062
  *     Erreur eventuelle
1063 1063
  **/
1064 1064
 function spip_mysql_error($query = '', $serveur = '', $requeter = true) {
1065
-	$link = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]['link'];
1066
-	$s = mysqli_error($link);
1067
-	if ($s) {
1068
-		$trace = debug_backtrace();
1069
-		if ($trace[0]['function'] != 'spip_mysql_error') {
1070
-			spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1071
-		}
1072
-	}
1073
-
1074
-	return $s;
1065
+    $link = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]['link'];
1066
+    $s = mysqli_error($link);
1067
+    if ($s) {
1068
+        $trace = debug_backtrace();
1069
+        if ($trace[0]['function'] != 'spip_mysql_error') {
1070
+            spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1071
+        }
1072
+    }
1073
+
1074
+    return $s;
1075 1075
 }
1076 1076
 
1077 1077
 
@@ -1086,18 +1086,18 @@  discard block
 block discarded – undo
1086 1086
  *     0, pas d'erreur. Autre, numéro de l'erreur.
1087 1087
  **/
1088 1088
 function spip_mysql_errno($serveur = '', $requeter = true) {
1089
-	$link = $GLOBALS['connexions'][$serveur ? $serveur : 0]['link'];
1090
-	$s = mysqli_errno($link);
1091
-	// 2006 MySQL server has gone away
1092
-	// 2013 Lost connection to MySQL server during query
1093
-	if (in_array($s, [2006, 2013])) {
1094
-		define('spip_interdire_cache', true);
1095
-	}
1096
-	if ($s) {
1097
-		spip_log("Erreur mysql $s", _LOG_ERREUR);
1098
-	}
1099
-
1100
-	return $s;
1089
+    $link = $GLOBALS['connexions'][$serveur ? $serveur : 0]['link'];
1090
+    $s = mysqli_errno($link);
1091
+    // 2006 MySQL server has gone away
1092
+    // 2013 Lost connection to MySQL server during query
1093
+    if (in_array($s, [2006, 2013])) {
1094
+        define('spip_interdire_cache', true);
1095
+    }
1096
+    if ($s) {
1097
+        spip_log("Erreur mysql $s", _LOG_ERREUR);
1098
+    }
1099
+
1100
+    return $s;
1101 1101
 }
1102 1102
 
1103 1103
 
@@ -1111,9 +1111,9 @@  discard block
 block discarded – undo
1111 1111
  * @return int               Nombre de lignes
1112 1112
  */
1113 1113
 function spip_mysql_count($r, $serveur = '', $requeter = true) {
1114
-	if ($r) {
1115
-		return mysqli_num_rows($r);
1116
-	}
1114
+    if ($r) {
1115
+        return mysqli_num_rows($r);
1116
+    }
1117 1117
 }
1118 1118
 
1119 1119
 
@@ -1129,7 +1129,7 @@  discard block
 block discarded – undo
1129 1129
  * @return bool              True si réussi
1130 1130
  */
1131 1131
 function spip_mysql_free($r, $serveur = '', $requeter = true) {
1132
-	return (($r instanceof mysqli_result) ? mysqli_free_result($r) : false);
1132
+    return (($r instanceof mysqli_result) ? mysqli_free_result($r) : false);
1133 1133
 }
1134 1134
 
1135 1135
 
@@ -1157,49 +1157,49 @@  discard block
 block discarded – undo
1157 1157
  **/
1158 1158
 function spip_mysql_insert($table, $champs, $valeurs, $desc = [], $serveur = '', $requeter = true) {
1159 1159
 
1160
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1161
-	$link = $connexion['link'];
1162
-	$table = prefixer_table_spip($table, $connexion['prefixe']);
1163
-
1164
-	// remplacer les emoji (que mysql ne sait pas gérer) en 💩
1165
-	if (
1166
-		defined('_MYSQL_NOPLANES')
1167
-		and _MYSQL_NOPLANES
1168
-		and !empty($GLOBALS['meta']['charset_sql_connexion'])
1169
-		and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
1170
-	) {
1171
-		include_spip('inc/charsets');
1172
-		$valeurs = utf8_noplanes($valeurs);
1173
-	}
1174
-
1175
-	$query = "INSERT INTO $table $champs VALUES $valeurs";
1176
-	if (!$requeter) {
1177
-		return $query;
1178
-	}
1179
-
1180
-	if (isset($_GET['var_profile'])) {
1181
-		include_spip('public/tracer');
1182
-		$t = trace_query_start();
1183
-		$e = '';
1184
-	} else {
1185
-		$t = 0;
1186
-	}
1187
-
1188
-	$connexion['last'] = $query;
1189
-	#spip_log($query, 'mysql.'._LOG_DEBUG);
1190
-	$r = false;
1191
-	if (mysqli_query($link, $query)) {
1192
-		$r = mysqli_insert_id($link);
1193
-	} else {
1194
-		// Log de l'erreur eventuelle
1195
-		if ($e = spip_mysql_errno($serveur)) {
1196
-			$e .= spip_mysql_error($query, $serveur);
1197
-		} // et du fautif
1198
-	}
1199
-
1200
-	return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
1201
-
1202
-	// return $r ? $r : (($r===0) ? -1 : 0); pb avec le multi-base.
1160
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1161
+    $link = $connexion['link'];
1162
+    $table = prefixer_table_spip($table, $connexion['prefixe']);
1163
+
1164
+    // remplacer les emoji (que mysql ne sait pas gérer) en 💩
1165
+    if (
1166
+        defined('_MYSQL_NOPLANES')
1167
+        and _MYSQL_NOPLANES
1168
+        and !empty($GLOBALS['meta']['charset_sql_connexion'])
1169
+        and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
1170
+    ) {
1171
+        include_spip('inc/charsets');
1172
+        $valeurs = utf8_noplanes($valeurs);
1173
+    }
1174
+
1175
+    $query = "INSERT INTO $table $champs VALUES $valeurs";
1176
+    if (!$requeter) {
1177
+        return $query;
1178
+    }
1179
+
1180
+    if (isset($_GET['var_profile'])) {
1181
+        include_spip('public/tracer');
1182
+        $t = trace_query_start();
1183
+        $e = '';
1184
+    } else {
1185
+        $t = 0;
1186
+    }
1187
+
1188
+    $connexion['last'] = $query;
1189
+    #spip_log($query, 'mysql.'._LOG_DEBUG);
1190
+    $r = false;
1191
+    if (mysqli_query($link, $query)) {
1192
+        $r = mysqli_insert_id($link);
1193
+    } else {
1194
+        // Log de l'erreur eventuelle
1195
+        if ($e = spip_mysql_errno($serveur)) {
1196
+            $e .= spip_mysql_error($query, $serveur);
1197
+        } // et du fautif
1198
+    }
1199
+
1200
+    return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
1201
+
1202
+    // return $r ? $r : (($r===0) ? -1 : 0); pb avec le multi-base.
1203 1203
 }
1204 1204
 
1205 1205
 /**
@@ -1224,26 +1224,26 @@  discard block
 block discarded – undo
1224 1224
  **/
1225 1225
 function spip_mysql_insertq($table, $couples = [], $desc = [], $serveur = '', $requeter = true) {
1226 1226
 
1227
-	if (!$desc) {
1228
-		$desc = description_table($table, $serveur);
1229
-	}
1230
-	if (!$desc) {
1231
-		$couples = [];
1232
-	}
1233
-	$fields = isset($desc['field']) ? $desc['field'] : [];
1234
-
1235
-	foreach ($couples as $champ => $val) {
1236
-		$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1237
-	}
1238
-
1239
-	return spip_mysql_insert(
1240
-		$table,
1241
-		'(' . join(',', array_keys($couples)) . ')',
1242
-		'(' . join(',', $couples) . ')',
1243
-		$desc,
1244
-		$serveur,
1245
-		$requeter
1246
-	);
1227
+    if (!$desc) {
1228
+        $desc = description_table($table, $serveur);
1229
+    }
1230
+    if (!$desc) {
1231
+        $couples = [];
1232
+    }
1233
+    $fields = isset($desc['field']) ? $desc['field'] : [];
1234
+
1235
+    foreach ($couples as $champ => $val) {
1236
+        $couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1237
+    }
1238
+
1239
+    return spip_mysql_insert(
1240
+        $table,
1241
+        '(' . join(',', array_keys($couples)) . ')',
1242
+        '(' . join(',', $couples) . ')',
1243
+        $desc,
1244
+        $serveur,
1245
+        $requeter
1246
+    );
1247 1247
 }
1248 1248
 
1249 1249
 
@@ -1268,34 +1268,34 @@  discard block
 block discarded – undo
1268 1268
  **/
1269 1269
 function spip_mysql_insertq_multi($table, $tab_couples = [], $desc = [], $serveur = '', $requeter = true) {
1270 1270
 
1271
-	if (!$desc) {
1272
-		$desc = description_table($table, $serveur);
1273
-	}
1274
-	if (!$desc) {
1275
-		$tab_couples = [];
1276
-	}
1277
-	$fields = isset($desc['field']) ? $desc['field'] : [];
1278
-
1279
-	$cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1280
-	$valeurs = [];
1281
-	$r = false;
1282
-
1283
-	// Quoter et Inserer par groupes de 100 max pour eviter un debordement de pile
1284
-	foreach ($tab_couples as $couples) {
1285
-		foreach ($couples as $champ => $val) {
1286
-			$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1287
-		}
1288
-		$valeurs[] = '(' . join(',', $couples) . ')';
1289
-		if (count($valeurs) >= 100) {
1290
-			$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1291
-			$valeurs = [];
1292
-		}
1293
-	}
1294
-	if (count($valeurs)) {
1295
-		$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1296
-	}
1297
-
1298
-	return $r; // dans le cas d'une table auto_increment, le dernier insert_id
1271
+    if (!$desc) {
1272
+        $desc = description_table($table, $serveur);
1273
+    }
1274
+    if (!$desc) {
1275
+        $tab_couples = [];
1276
+    }
1277
+    $fields = isset($desc['field']) ? $desc['field'] : [];
1278
+
1279
+    $cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1280
+    $valeurs = [];
1281
+    $r = false;
1282
+
1283
+    // Quoter et Inserer par groupes de 100 max pour eviter un debordement de pile
1284
+    foreach ($tab_couples as $couples) {
1285
+        foreach ($couples as $champ => $val) {
1286
+            $couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1287
+        }
1288
+        $valeurs[] = '(' . join(',', $couples) . ')';
1289
+        if (count($valeurs) >= 100) {
1290
+            $r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1291
+            $valeurs = [];
1292
+        }
1293
+    }
1294
+    if (count($valeurs)) {
1295
+        $r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1296
+    }
1297
+
1298
+    return $r; // dans le cas d'une table auto_increment, le dernier insert_id
1299 1299
 }
1300 1300
 
1301 1301
 /**
@@ -1320,19 +1320,19 @@  discard block
 block discarded – undo
1320 1320
  *     - array Tableau décrivant la requête et son temps d'exécution si var_profile est actif
1321 1321
  */
1322 1322
 function spip_mysql_update($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1323
-	$set = [];
1324
-	foreach ($champs as $champ => $val) {
1325
-		$set[] = $champ . "=$val";
1326
-	}
1327
-	if (!empty($set)) {
1328
-		return spip_mysql_query(
1329
-			calculer_mysql_expression('UPDATE', $table, ',')
1330
-			. calculer_mysql_expression('SET', $set, ',')
1331
-			. calculer_mysql_expression('WHERE', $where),
1332
-			$serveur,
1333
-			$requeter
1334
-		);
1335
-	}
1323
+    $set = [];
1324
+    foreach ($champs as $champ => $val) {
1325
+        $set[] = $champ . "=$val";
1326
+    }
1327
+    if (!empty($set)) {
1328
+        return spip_mysql_query(
1329
+            calculer_mysql_expression('UPDATE', $table, ',')
1330
+            . calculer_mysql_expression('SET', $set, ',')
1331
+            . calculer_mysql_expression('WHERE', $where),
1332
+            $serveur,
1333
+            $requeter
1334
+        );
1335
+    }
1336 1336
 }
1337 1337
 
1338 1338
 /**
@@ -1365,29 +1365,29 @@  discard block
 block discarded – undo
1365 1365
  */
1366 1366
 function spip_mysql_updateq($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1367 1367
 
1368
-	if (!$champs) {
1369
-		return;
1370
-	}
1371
-	if (!$desc) {
1372
-		$desc = description_table($table, $serveur);
1373
-	}
1374
-	if (!$desc) {
1375
-		$champs = [];
1376
-	} else {
1377
-		$fields = $desc['field'];
1378
-	}
1379
-	$set = [];
1380
-	foreach ($champs as $champ => $val) {
1381
-		$set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1382
-	}
1383
-
1384
-	return spip_mysql_query(
1385
-		calculer_mysql_expression('UPDATE', $table, ',')
1386
-		. calculer_mysql_expression('SET', $set, ',')
1387
-		. calculer_mysql_expression('WHERE', $where),
1388
-		$serveur,
1389
-		$requeter
1390
-	);
1368
+    if (!$champs) {
1369
+        return;
1370
+    }
1371
+    if (!$desc) {
1372
+        $desc = description_table($table, $serveur);
1373
+    }
1374
+    if (!$desc) {
1375
+        $champs = [];
1376
+    } else {
1377
+        $fields = $desc['field'];
1378
+    }
1379
+    $set = [];
1380
+    foreach ($champs as $champ => $val) {
1381
+        $set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1382
+    }
1383
+
1384
+    return spip_mysql_query(
1385
+        calculer_mysql_expression('UPDATE', $table, ',')
1386
+        . calculer_mysql_expression('SET', $set, ',')
1387
+        . calculer_mysql_expression('WHERE', $where),
1388
+        $serveur,
1389
+        $requeter
1390
+    );
1391 1391
 }
1392 1392
 
1393 1393
 /**
@@ -1403,22 +1403,22 @@  discard block
 block discarded – undo
1403 1403
  *     - False en cas d'erreur.
1404 1404
  **/
1405 1405
 function spip_mysql_delete($table, $where = '', $serveur = '', $requeter = true) {
1406
-	$res = spip_mysql_query(
1407
-		calculer_mysql_expression('DELETE FROM', $table, ',')
1408
-		. calculer_mysql_expression('WHERE', $where),
1409
-		$serveur,
1410
-		$requeter
1411
-	);
1412
-	if (!$requeter) {
1413
-		return $res;
1414
-	}
1415
-	if ($res) {
1416
-		$link = _mysql_link($serveur);
1417
-
1418
-		return mysqli_affected_rows($link);
1419
-	} else {
1420
-		return false;
1421
-	}
1406
+    $res = spip_mysql_query(
1407
+        calculer_mysql_expression('DELETE FROM', $table, ',')
1408
+        . calculer_mysql_expression('WHERE', $where),
1409
+        $serveur,
1410
+        $requeter
1411
+    );
1412
+    if (!$requeter) {
1413
+        return $res;
1414
+    }
1415
+    if ($res) {
1416
+        $link = _mysql_link($serveur);
1417
+
1418
+        return mysqli_affected_rows($link);
1419
+    } else {
1420
+        return false;
1421
+    }
1422 1422
 }
1423 1423
 
1424 1424
 
@@ -1447,10 +1447,10 @@  discard block
 block discarded – undo
1447 1447
  *     - False en cas d'erreur.
1448 1448
  **/
1449 1449
 function spip_mysql_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) {
1450
-	return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1451
-		',',
1452
-		array_map('_q', $couples)
1453
-	) . ')', $serveur, $requeter);
1450
+    return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1451
+        ',',
1452
+        array_map('_q', $couples)
1453
+    ) . ')', $serveur, $requeter);
1454 1454
 }
1455 1455
 
1456 1456
 
@@ -1479,14 +1479,14 @@  discard block
 block discarded – undo
1479 1479
  *     - False en cas d'erreur.
1480 1480
  **/
1481 1481
 function spip_mysql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) {
1482
-	$cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1483
-	$valeurs = [];
1484
-	foreach ($tab_couples as $couples) {
1485
-		$valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1486
-	}
1487
-	$valeurs = implode(', ', $valeurs);
1488
-
1489
-	return spip_mysql_query("REPLACE $table $cles VALUES $valeurs", $serveur, $requeter);
1482
+    $cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1483
+    $valeurs = [];
1484
+    foreach ($tab_couples as $couples) {
1485
+        $valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1486
+    }
1487
+    $valeurs = implode(', ', $valeurs);
1488
+
1489
+    return spip_mysql_query("REPLACE $table $cles VALUES $valeurs", $serveur, $requeter);
1490 1490
 }
1491 1491
 
1492 1492
 
@@ -1501,32 +1501,32 @@  discard block
 block discarded – undo
1501 1501
  * @return string       Texte de sélection pour la requête
1502 1502
  */
1503 1503
 function spip_mysql_multi($objet, $lang) {
1504
-	$lengthlang = strlen("[$lang]");
1505
-	$posmulti = 'INSTR(' . $objet . ", '<multi>')";
1506
-	$posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1507
-	$debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1508
-	$finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1509
-	$chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1510
-	$poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1511
-	$poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1512
-	$chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1513
-	$posfinlang = 'INSTR(' . $chainelang . ", '[')";
1514
-	$chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1515
-	//$chainelang = "LEFT($chainelang,$posfinlang-1)";
1516
-	$retour = "(TRIM(IF($posmulti = 0 , " .
1517
-		'     TRIM(' . $objet . '), ' .
1518
-		'     CONCAT( ' .
1519
-		"          $debutchaine, " .
1520
-		'          IF( ' .
1521
-		"               $poslang = 0, " .
1522
-		"                     $chainemulti, " .
1523
-		"               $chainelang" .
1524
-		'          ), ' .
1525
-		"          $finchaine" .
1526
-		'     ) ' .
1527
-		'))) AS multi';
1528
-
1529
-	return $retour;
1504
+    $lengthlang = strlen("[$lang]");
1505
+    $posmulti = 'INSTR(' . $objet . ", '<multi>')";
1506
+    $posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1507
+    $debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1508
+    $finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1509
+    $chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1510
+    $poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1511
+    $poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1512
+    $chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1513
+    $posfinlang = 'INSTR(' . $chainelang . ", '[')";
1514
+    $chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1515
+    //$chainelang = "LEFT($chainelang,$posfinlang-1)";
1516
+    $retour = "(TRIM(IF($posmulti = 0 , " .
1517
+        '     TRIM(' . $objet . '), ' .
1518
+        '     CONCAT( ' .
1519
+        "          $debutchaine, " .
1520
+        '          IF( ' .
1521
+        "               $poslang = 0, " .
1522
+        "                     $chainemulti, " .
1523
+        "               $chainelang" .
1524
+        '          ), ' .
1525
+        "          $finchaine" .
1526
+        '     ) ' .
1527
+        '))) AS multi';
1528
+
1529
+    return $retour;
1530 1530
 }
1531 1531
 
1532 1532
 /**
@@ -1540,7 +1540,7 @@  discard block
 block discarded – undo
1540 1540
  *     Valeur hexadécimale pour MySQL
1541 1541
  **/
1542 1542
 function spip_mysql_hex($v) {
1543
-	return '0x' . $v;
1543
+    return '0x' . $v;
1544 1544
 }
1545 1545
 
1546 1546
 /**
@@ -1556,15 +1556,15 @@  discard block
 block discarded – undo
1556 1556
  *    Donnée prête à être utilisée par le gestionnaire SQL
1557 1557
  */
1558 1558
 function spip_mysql_quote($v, $type = '') {
1559
-	if (!is_array($v)) {
1560
-		return spip_mysql_cite($v, $type);
1561
-	}
1562
-
1563
-	// si c'est un tableau, le parcourir en propageant le type
1564
-	foreach ($v as $k => $r) {
1565
-		$v[$k] = spip_mysql_quote($r, $type);
1566
-	}
1567
-	return implode(',', $v);
1559
+    if (!is_array($v)) {
1560
+        return spip_mysql_cite($v, $type);
1561
+    }
1562
+
1563
+    // si c'est un tableau, le parcourir en propageant le type
1564
+    foreach ($v as $k => $r) {
1565
+        $v[$k] = spip_mysql_quote($r, $type);
1566
+    }
1567
+    return implode(',', $v);
1568 1568
 }
1569 1569
 
1570 1570
 /**
@@ -1580,18 +1580,18 @@  discard block
 block discarded – undo
1580 1580
  *     Expression SQL
1581 1581
  **/
1582 1582
 function spip_mysql_date_proche($champ, $interval, $unite) {
1583
-	$use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1584
-	return '('
1585
-	. $champ
1586
-	. (($interval <= 0) ? '>' : '<')
1587
-	. (($interval <= 0) ? 'DATE_SUB' : 'DATE_ADD')
1588
-	. '('
1589
-	. ($use_now ? 'NOW()' : sql_quote(date('Y-m-d H:i:s')))
1590
-	. ', INTERVAL '
1591
-	. (($interval > 0) ? $interval : (0 - $interval))
1592
-	. ' '
1593
-	. $unite
1594
-	. '))';
1583
+    $use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1584
+    return '('
1585
+    . $champ
1586
+    . (($interval <= 0) ? '>' : '<')
1587
+    . (($interval <= 0) ? 'DATE_SUB' : 'DATE_ADD')
1588
+    . '('
1589
+    . ($use_now ? 'NOW()' : sql_quote(date('Y-m-d H:i:s')))
1590
+    . ', INTERVAL '
1591
+    . (($interval > 0) ? $interval : (0 - $interval))
1592
+    . ' '
1593
+    . $unite
1594
+    . '))';
1595 1595
 }
1596 1596
 
1597 1597
 
@@ -1615,7 +1615,7 @@  discard block
 block discarded – undo
1615 1615
  *     Expression de requête SQL
1616 1616
  **/
1617 1617
 function spip_mysql_in($val, $valeurs, $not = '', $serveur = '', $requeter = true) {
1618
-	return "($val $not IN ($valeurs))";
1618
+    return "($val $not IN ($valeurs))";
1619 1619
 }
1620 1620
 
1621 1621
 
@@ -1627,38 +1627,38 @@  discard block
 block discarded – undo
1627 1627
  * @return string|number     Texte ou nombre échappé
1628 1628
  */
1629 1629
 function spip_mysql_cite($v, $type) {
1630
-	if (!$type) {
1631
-		if (is_bool($v)) {
1632
-			return strval(intval($v));
1633
-		}
1634
-		elseif (is_numeric($v)) {
1635
-			return strval($v);
1636
-		}
1637
-		return "'" . addslashes($v) . "'";
1638
-	}
1639
-
1640
-	if (
1641
-		is_null($v)
1642
-		and stripos($type, 'NOT NULL') === false
1643
-	) {
1644
-		return 'NULL';
1645
-	} // null php se traduit en NULL SQL
1646
-	if (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
1647
-		return $v;
1648
-	}
1649
-	if (sql_test_int($type)) {
1650
-		if (
1651
-			is_numeric($v) or (ctype_xdigit(substr($v, 2))
1652
-				and $v[0] == '0' and $v[1] == 'x')
1653
-		) {
1654
-			return $v;
1655
-		} // si pas numerique, forcer le intval
1656
-		else {
1657
-			return intval($v);
1658
-		}
1659
-	}
1660
-
1661
-	return ("'" . addslashes($v) . "'");
1630
+    if (!$type) {
1631
+        if (is_bool($v)) {
1632
+            return strval(intval($v));
1633
+        }
1634
+        elseif (is_numeric($v)) {
1635
+            return strval($v);
1636
+        }
1637
+        return "'" . addslashes($v) . "'";
1638
+    }
1639
+
1640
+    if (
1641
+        is_null($v)
1642
+        and stripos($type, 'NOT NULL') === false
1643
+    ) {
1644
+        return 'NULL';
1645
+    } // null php se traduit en NULL SQL
1646
+    if (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
1647
+        return $v;
1648
+    }
1649
+    if (sql_test_int($type)) {
1650
+        if (
1651
+            is_numeric($v) or (ctype_xdigit(substr($v, 2))
1652
+                and $v[0] == '0' and $v[1] == 'x')
1653
+        ) {
1654
+            return $v;
1655
+        } // si pas numerique, forcer le intval
1656
+        else {
1657
+            return intval($v);
1658
+        }
1659
+    }
1660
+
1661
+    return ("'" . addslashes($v) . "'");
1662 1662
 }
1663 1663
 
1664 1664
 /**
@@ -1668,7 +1668,7 @@  discard block
 block discarded – undo
1668 1668
  *     True si on a les fonctions, false sinon
1669 1669
  */
1670 1670
 function spip_versions_mysql() {
1671
-	return function_exists('mysqli_query');
1671
+    return function_exists('mysqli_query');
1672 1672
 }
1673 1673
 
1674 1674
 
@@ -1681,20 +1681,20 @@  discard block
 block discarded – undo
1681 1681
  *     - chaîne : code compilé pour le faire désactiver par SPIP sinon
1682 1682
  */
1683 1683
 function test_rappel_nom_base_mysql($server_db) {
1684
-	$GLOBALS['mysql_rappel_nom_base'] = true;
1685
-	sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1686
-	$ok = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')", $server_db);
1684
+    $GLOBALS['mysql_rappel_nom_base'] = true;
1685
+    sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1686
+    $ok = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')", $server_db);
1687 1687
 
1688
-	if ($ok) {
1689
-		sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1688
+    if ($ok) {
1689
+        sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1690 1690
 
1691
-		return '';
1692
-	} else {
1693
-		$GLOBALS['mysql_rappel_nom_base'] = false;
1691
+        return '';
1692
+    } else {
1693
+        $GLOBALS['mysql_rappel_nom_base'] = false;
1694 1694
 
1695
-		return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1696
-		"/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1697
-	}
1695
+        return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1696
+        "/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1697
+    }
1698 1698
 }
1699 1699
 
1700 1700
 /**
@@ -1708,13 +1708,13 @@  discard block
 block discarded – undo
1708 1708
  *     - chaîne : code compilé pour l'indiquer le résultat du test à SPIP
1709 1709
  */
1710 1710
 function test_sql_mode_mysql($server_db) {
1711
-	$res = sql_select('version() as v', '', '', '', '', '', '', $server_db);
1712
-	$row = sql_fetch($res, $server_db);
1713
-	if (version_compare($row['v'], '5.0.0', '>=')) {
1714
-		defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE', true);
1711
+    $res = sql_select('version() as v', '', '', '', '', '', '', $server_db);
1712
+    $row = sql_fetch($res, $server_db);
1713
+    if (version_compare($row['v'], '5.0.0', '>=')) {
1714
+        defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE', true);
1715 1715
 
1716
-		return "defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);\n";
1717
-	}
1716
+        return "defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);\n";
1717
+    }
1718 1718
 
1719
-	return '';
1719
+    return '';
1720 1720
 }
Please login to merge, or discard this patch.
Spacing   +73 added lines, -73 removed lines patch added patch discarded remove patch
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
 	}
61 61
 
62 62
 	if (!$link) {
63
-		spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
63
+		spip_log('Echec mysqli_connect. Erreur : '.mysqli_connect_error(), 'mysql.'._LOG_HS);
64 64
 
65 65
 		return false;
66 66
 	}
@@ -79,7 +79,7 @@  discard block
 block discarded – undo
79 79
 	}
80 80
 
81 81
 	spip_log(
82
-		"Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
82
+		"Connexion MySQLi vers $host, base $db, prefixe $prefixe ".($ok ? 'operationnelle' : 'impossible'),
83 83
 		_LOG_DEBUG
84 84
 	);
85 85
 
@@ -169,9 +169,9 @@  discard block
 block discarded – undo
169 169
  */
170 170
 function spip_mysql_set_charset($charset, $serveur = '', $requeter = true) {
171 171
 	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
172
-	spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
172
+	spip_log('changement de charset sql : '.'SET NAMES '._q($charset), _LOG_DEBUG);
173 173
 
174
-	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
174
+	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES '._q($charset));
175 175
 }
176 176
 
177 177
 
@@ -186,7 +186,7 @@  discard block
 block discarded – undo
186 186
 function spip_mysql_get_charset($charset = [], $serveur = '', $requeter = true) {
187 187
 	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
188 188
 	$connexion['last'] = $c = 'SHOW CHARACTER SET'
189
-		. (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
189
+		. (!$charset ? '' : (' LIKE '._q($charset['charset'])));
190 190
 
191 191
 	return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
192 192
 }
@@ -230,19 +230,19 @@  discard block
 block discarded – undo
230 230
 	$debug = '';
231 231
 	if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
232 232
 		if (isset($GLOBALS['debug']['aucasou'])) {
233
-			list(, $id, , $infos) = $GLOBALS['debug']['aucasou'];
234
-			$debug .= "BOUCLE$id @ " . (isset($infos[0]) ? $infos[0] : '') . ' | ';
233
+			list(, $id,, $infos) = $GLOBALS['debug']['aucasou'];
234
+			$debug .= "BOUCLE$id @ ".(isset($infos[0]) ? $infos[0] : '').' | ';
235 235
 		}
236 236
 		if (isset($_SERVER['REQUEST_URI'])) {
237 237
 			$debug .= $_SERVER['REQUEST_URI'];
238 238
 		}
239 239
 		if (!empty($GLOBALS['ip'])) {
240
-			$debug .= ' + ' . $GLOBALS['ip'];
240
+			$debug .= ' + '.$GLOBALS['ip'];
241 241
 		}
242
-		$debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
242
+		$debug = ' /* '.mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)).' */';
243 243
 	}
244 244
 
245
-	$r = mysqli_query($link, $query . $debug);
245
+	$r = mysqli_query($link, $query.$debug);
246 246
 
247 247
 	//Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
248 248
 	if ($e = spip_mysql_errno($serveur)) {  // Log d'un Gone Away
@@ -255,7 +255,7 @@  discard block
 block discarded – undo
255 255
 			$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
256 256
 			$link = $connexion['link'];
257 257
 			//On retente au cas où
258
-			$r = mysqli_query($link, $query . $debug);
258
+			$r = mysqli_query($link, $query.$debug);
259 259
 		}
260 260
 	}
261 261
 
@@ -283,7 +283,7 @@  discard block
 block discarded – undo
283 283
 	// d'utiliser ceux-ci, copie-colle de phpmyadmin
284 284
 	$query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
285 285
 
286
-	return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
286
+	return spip_mysql_query('ALTER '.$query, $serveur, $requeter); # i.e. que PG se debrouille
287 287
 }
288 288
 
289 289
 
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
  * @return bool            Toujours true
297 297
  */
298 298
 function spip_mysql_optimize($table, $serveur = '', $requeter = true) {
299
-	spip_mysql_query('OPTIMIZE TABLE ' . $table);
299
+	spip_mysql_query('OPTIMIZE TABLE '.$table);
300 300
 
301 301
 	return true;
302 302
 }
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 	$link = $connexion['link'];
320 320
 	$db = $connexion['db'];
321 321
 
322
-	$query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
322
+	$query = 'EXPLAIN '._mysql_traite_query($query, $db, $prefixe);
323 323
 	$r = mysqli_query($link, $query);
324 324
 
325 325
 	return spip_mysql_fetch($r, null, $serveur);
@@ -370,7 +370,7 @@  discard block
 block discarded – undo
370 370
 		. calculer_mysql_expression('WHERE', $where)
371 371
 		. calculer_mysql_expression('GROUP BY', $groupby, ',')
372 372
 		. calculer_mysql_expression('HAVING', $having)
373
-		. ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
373
+		. ($orderby ? ("\nORDER BY ".spip_mysql_order($orderby)) : '')
374 374
 		. ($limit ? "\nLIMIT $limit" : '');
375 375
 
376 376
 	// renvoyer la requete inerte si demandee
@@ -460,12 +460,12 @@  discard block
 block discarded – undo
460 460
 	$exp = "\n$expression ";
461 461
 
462 462
 	if (!is_array($v)) {
463
-		return $exp . $v;
463
+		return $exp.$v;
464 464
 	} else {
465 465
 		if (strtoupper($join) === 'AND') {
466
-			return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
466
+			return $exp.join("\n\t$join ", array_map('calculer_mysql_where', $v));
467 467
 		} else {
468
-			return $exp . join($join, $v);
468
+			return $exp.join($join, $v);
469 469
 		}
470 470
 	}
471 471
 }
@@ -483,17 +483,17 @@  discard block
 block discarded – undo
483 483
 		if (substr($k, -1) == '@') {
484 484
 			// c'est une jointure qui se refere au from precedent
485 485
 			// pas de virgule
486
-			$res .= '  ' . $v;
486
+			$res .= '  '.$v;
487 487
 		} else {
488 488
 			if (!is_numeric($k)) {
489 489
 				$p = strpos($v, ' ');
490 490
 				if ($p) {
491
-					$v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
491
+					$v = substr($v, 0, $p)." AS `$k`".substr($v, $p);
492 492
 				} else {
493 493
 					$v .= " AS `$k`";
494 494
 				}
495 495
 			}
496
-			$res .= ', ' . $v;
496
+			$res .= ', '.$v;
497 497
 		}
498 498
 	}
499 499
 
@@ -523,13 +523,13 @@  discard block
 block discarded – undo
523 523
 function _mysql_traite_query($query, $db = '', $prefixe = '', $echappe_textes = true) {
524 524
 
525 525
 	if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
526
-		$pref = '`' . $db . '`.';
526
+		$pref = '`'.$db.'`.';
527 527
 	} else {
528 528
 		$pref = '';
529 529
 	}
530 530
 
531 531
 	if ($prefixe) {
532
-		$pref .= $prefixe . '_';
532
+		$pref .= $prefixe.'_';
533 533
 	}
534 534
 
535 535
 	if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
@@ -548,7 +548,7 @@  discard block
 block discarded – undo
548 548
 				$suite_echap = $suite;
549 549
 			}
550 550
 			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
551
-				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
551
+				$suite_echap = $r[1]._mysql_traite_query($r[2], $db, $prefixe, false);
552 552
 				if ($echappe_textes) {
553 553
 					$suite = query_reinjecte_textes($suite_echap, $textes);
554 554
 				}
@@ -558,7 +558,7 @@  discard block
 block discarded – undo
558 558
 			}
559 559
 		}
560 560
 	}
561
-	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
561
+	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1'.$pref, $query).$suite;
562 562
 
563 563
 	// en option, remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
564 564
 	// remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
@@ -594,7 +594,7 @@  discard block
 block discarded – undo
594 594
 	$link = _mysql_link($serveur);
595 595
 	$ok = mysqli_select_db($link, $db);
596 596
 	if (!$ok) {
597
-		spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
597
+		spip_log('Echec mysqli_selectdb. Erreur : '.mysqli_error($link), 'mysql.'._LOG_CRITIQUE);
598 598
 	}
599 599
 
600 600
 	return $ok;
@@ -684,10 +684,10 @@  discard block
 block discarded – undo
684 684
 
685 685
 	$character_set = '';
686 686
 	if (@$GLOBALS['meta']['charset_sql_base']) {
687
-		$character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
687
+		$character_set .= ' CHARACTER SET '.$GLOBALS['meta']['charset_sql_base'];
688 688
 	}
689 689
 	if (@$GLOBALS['meta']['charset_collation_sql_base']) {
690
-		$character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
690
+		$character_set .= ' COLLATE '.$GLOBALS['meta']['charset_collation_sql_base'];
691 691
 	}
692 692
 
693 693
 	foreach ($champs as $k => $v) {
@@ -697,7 +697,7 @@  discard block
 block discarded – undo
697 697
 				preg_match(',(char|text),i', $defs[1])
698 698
 				and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
699 699
 			) {
700
-				$v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
700
+				$v = $defs[1].$character_set.' '.substr($v, strlen($defs[1]));
701 701
 			}
702 702
 		}
703 703
 
@@ -709,7 +709,7 @@  discard block
 block discarded – undo
709 709
 		$s = ',';
710 710
 	}
711 711
 	$temporary = $temporary ? 'TEMPORARY' : '';
712
-	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
712
+	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query".($keys ? ",$keys" : '').')'
713 713
 		. ' ENGINE=MyISAM'
714 714
 		. ($character_set ? " DEFAULT $character_set" : '')
715 715
 		. "\n";
@@ -789,7 +789,7 @@  discard block
 block discarded – undo
789 789
 		return false;
790 790
 	}
791 791
 
792
-	$query = "CREATE VIEW $nom AS " . $query_select;
792
+	$query = "CREATE VIEW $nom AS ".$query_select;
793 793
 
794 794
 	return spip_mysql_query($query, $serveur, $requeter);
795 795
 }
@@ -847,7 +847,7 @@  discard block
 block discarded – undo
847 847
  *     Ressource à utiliser avec sql_fetch()
848 848
  **/
849 849
 function spip_mysql_showbase($match, $serveur = '', $requeter = true) {
850
-	return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
850
+	return spip_mysql_query('SHOW TABLES LIKE '._q($match), $serveur, $requeter);
851 851
 }
852 852
 
853 853
 /**
@@ -941,22 +941,22 @@  discard block
 block discarded – undo
941 941
 			}
942 942
 			if ($val['Default'] === '0' || $val['Default']) {
943 943
 				if (preg_match('/[A-Z_]/', $val['Default'])) {
944
-					$nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
944
+					$nfields[$val['Field']] .= ' DEFAULT '.$val['Default'];
945 945
 				} else {
946
-					$nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
946
+					$nfields[$val['Field']] .= " DEFAULT '".$val['Default']."'";
947 947
 				}
948 948
 			}
949 949
 			if ($val['Extra']) {
950
-				$nfields[$val['Field']] .= ' ' . $val['Extra'];
950
+				$nfields[$val['Field']] .= ' '.$val['Extra'];
951 951
 			}
952 952
 			if ($val['Key'] == 'PRI') {
953 953
 				$nkeys['PRIMARY KEY'] = $val['Field'];
954 954
 			} else {
955 955
 				if ($val['Key'] == 'MUL') {
956
-					$nkeys['KEY ' . $val['Field']] = $val['Field'];
956
+					$nkeys['KEY '.$val['Field']] = $val['Field'];
957 957
 				} else {
958 958
 					if ($val['Key'] == 'UNI') {
959
-						$nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
959
+						$nkeys['UNIQUE KEY '.$val['Field']] = $val['Field'];
960 960
 					}
961 961
 				}
962 962
 			}
@@ -1027,7 +1027,7 @@  discard block
 block discarded – undo
1027 1027
 	$serveur = '',
1028 1028
 	$requeter = true
1029 1029
 ) {
1030
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1030
+	$c = !$groupby ? '*' : ('DISTINCT '.(is_string($groupby) ? $groupby : join(',', $groupby)));
1031 1031
 
1032 1032
 	$r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1033 1033
 	if (!$requeter) {
@@ -1067,7 +1067,7 @@  discard block
 block discarded – undo
1067 1067
 	if ($s) {
1068 1068
 		$trace = debug_backtrace();
1069 1069
 		if ($trace[0]['function'] != 'spip_mysql_error') {
1070
-			spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1070
+			spip_log("$s - $query - ".sql_error_backtrace(), 'mysql.'._LOG_ERREUR);
1071 1071
 		}
1072 1072
 	}
1073 1073
 
@@ -1238,8 +1238,8 @@  discard block
 block discarded – undo
1238 1238
 
1239 1239
 	return spip_mysql_insert(
1240 1240
 		$table,
1241
-		'(' . join(',', array_keys($couples)) . ')',
1242
-		'(' . join(',', $couples) . ')',
1241
+		'('.join(',', array_keys($couples)).')',
1242
+		'('.join(',', $couples).')',
1243 1243
 		$desc,
1244 1244
 		$serveur,
1245 1245
 		$requeter
@@ -1276,7 +1276,7 @@  discard block
 block discarded – undo
1276 1276
 	}
1277 1277
 	$fields = isset($desc['field']) ? $desc['field'] : [];
1278 1278
 
1279
-	$cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1279
+	$cles = '('.join(',', array_keys(reset($tab_couples))).')';
1280 1280
 	$valeurs = [];
1281 1281
 	$r = false;
1282 1282
 
@@ -1285,7 +1285,7 @@  discard block
 block discarded – undo
1285 1285
 		foreach ($couples as $champ => $val) {
1286 1286
 			$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1287 1287
 		}
1288
-		$valeurs[] = '(' . join(',', $couples) . ')';
1288
+		$valeurs[] = '('.join(',', $couples).')';
1289 1289
 		if (count($valeurs) >= 100) {
1290 1290
 			$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1291 1291
 			$valeurs = [];
@@ -1322,7 +1322,7 @@  discard block
 block discarded – undo
1322 1322
 function spip_mysql_update($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1323 1323
 	$set = [];
1324 1324
 	foreach ($champs as $champ => $val) {
1325
-		$set[] = $champ . "=$val";
1325
+		$set[] = $champ."=$val";
1326 1326
 	}
1327 1327
 	if (!empty($set)) {
1328 1328
 		return spip_mysql_query(
@@ -1378,7 +1378,7 @@  discard block
 block discarded – undo
1378 1378
 	}
1379 1379
 	$set = [];
1380 1380
 	foreach ($champs as $champ => $val) {
1381
-		$set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1381
+		$set[] = $champ.'='.spip_mysql_cite($val, @$fields[$champ]);
1382 1382
 	}
1383 1383
 
1384 1384
 	return spip_mysql_query(
@@ -1447,10 +1447,10 @@  discard block
 block discarded – undo
1447 1447
  *     - False en cas d'erreur.
1448 1448
  **/
1449 1449
 function spip_mysql_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) {
1450
-	return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1450
+	return spip_mysql_query("REPLACE $table (".join(',', array_keys($couples)).') VALUES ('.join(
1451 1451
 		',',
1452 1452
 		array_map('_q', $couples)
1453
-	) . ')', $serveur, $requeter);
1453
+	).')', $serveur, $requeter);
1454 1454
 }
1455 1455
 
1456 1456
 
@@ -1479,10 +1479,10 @@  discard block
 block discarded – undo
1479 1479
  *     - False en cas d'erreur.
1480 1480
  **/
1481 1481
 function spip_mysql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) {
1482
-	$cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1482
+	$cles = '('.join(',', array_keys($tab_couples[0])).')';
1483 1483
 	$valeurs = [];
1484 1484
 	foreach ($tab_couples as $couples) {
1485
-		$valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1485
+		$valeurs[] = '('.join(',', array_map('_q', $couples)).')';
1486 1486
 	}
1487 1487
 	$valeurs = implode(', ', $valeurs);
1488 1488
 
@@ -1502,28 +1502,28 @@  discard block
 block discarded – undo
1502 1502
  */
1503 1503
 function spip_mysql_multi($objet, $lang) {
1504 1504
 	$lengthlang = strlen("[$lang]");
1505
-	$posmulti = 'INSTR(' . $objet . ", '<multi>')";
1506
-	$posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1507
-	$debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1508
-	$finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1509
-	$chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1510
-	$poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1505
+	$posmulti = 'INSTR('.$objet.", '<multi>')";
1506
+	$posfinmulti = 'INSTR('.$objet.", '</multi>')";
1507
+	$debutchaine = 'LEFT('.$objet.", $posmulti-1)";
1508
+	$finchaine = 'RIGHT('.$objet.', CHAR_LENGTH('.$objet.") -(7+$posfinmulti))";
1509
+	$chainemulti = 'TRIM(SUBSTRING('.$objet.", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1510
+	$poslang = "INSTR($chainemulti,'[".$lang."]')";
1511 1511
 	$poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1512
-	$chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1513
-	$posfinlang = 'INSTR(' . $chainelang . ", '[')";
1512
+	$chainelang = 'TRIM(SUBSTRING('.$objet.", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1513
+	$posfinlang = 'INSTR('.$chainelang.", '[')";
1514 1514
 	$chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1515 1515
 	//$chainelang = "LEFT($chainelang,$posfinlang-1)";
1516
-	$retour = "(TRIM(IF($posmulti = 0 , " .
1517
-		'     TRIM(' . $objet . '), ' .
1518
-		'     CONCAT( ' .
1519
-		"          $debutchaine, " .
1520
-		'          IF( ' .
1521
-		"               $poslang = 0, " .
1522
-		"                     $chainemulti, " .
1523
-		"               $chainelang" .
1524
-		'          ), ' .
1525
-		"          $finchaine" .
1526
-		'     ) ' .
1516
+	$retour = "(TRIM(IF($posmulti = 0 , ".
1517
+		'     TRIM('.$objet.'), '.
1518
+		'     CONCAT( '.
1519
+		"          $debutchaine, ".
1520
+		'          IF( '.
1521
+		"               $poslang = 0, ".
1522
+		"                     $chainemulti, ".
1523
+		"               $chainelang".
1524
+		'          ), '.
1525
+		"          $finchaine".
1526
+		'     ) '.
1527 1527
 		'))) AS multi';
1528 1528
 
1529 1529
 	return $retour;
@@ -1540,7 +1540,7 @@  discard block
 block discarded – undo
1540 1540
  *     Valeur hexadécimale pour MySQL
1541 1541
  **/
1542 1542
 function spip_mysql_hex($v) {
1543
-	return '0x' . $v;
1543
+	return '0x'.$v;
1544 1544
 }
1545 1545
 
1546 1546
 /**
@@ -1580,7 +1580,7 @@  discard block
 block discarded – undo
1580 1580
  *     Expression SQL
1581 1581
  **/
1582 1582
 function spip_mysql_date_proche($champ, $interval, $unite) {
1583
-	$use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1583
+	$use_now = (($champ === 'maj' or strpos($champ, '.maj')) ? true : false);
1584 1584
 	return '('
1585 1585
 	. $champ
1586 1586
 	. (($interval <= 0) ? '>' : '<')
@@ -1634,7 +1634,7 @@  discard block
 block discarded – undo
1634 1634
 		elseif (is_numeric($v)) {
1635 1635
 			return strval($v);
1636 1636
 		}
1637
-		return "'" . addslashes($v) . "'";
1637
+		return "'".addslashes($v)."'";
1638 1638
 	}
1639 1639
 
1640 1640
 	if (
@@ -1658,7 +1658,7 @@  discard block
 block discarded – undo
1658 1658
 		}
1659 1659
 	}
1660 1660
 
1661
-	return ("'" . addslashes($v) . "'");
1661
+	return ("'".addslashes($v)."'");
1662 1662
 }
1663 1663
 
1664 1664
 /**
@@ -1692,7 +1692,7 @@  discard block
 block discarded – undo
1692 1692
 	} else {
1693 1693
 		$GLOBALS['mysql_rappel_nom_base'] = false;
1694 1694
 
1695
-		return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1695
+		return "\$GLOBALS['mysql_rappel_nom_base'] = false; ".
1696 1696
 		"/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1697 1697
 	}
1698 1698
 }
Please login to merge, or discard this patch.
Braces   +5 added lines, -10 removed lines patch added patch discarded remove patch
@@ -51,11 +51,9 @@  discard block
 block discarded – undo
51 51
 		and (!$host or $host == 'localhost')
52 52
 	) {
53 53
 		$link = @mysqli_connect($host, $login, $pass, '', null, $socket);
54
-	}
55
-	elseif ($port) {
54
+	} elseif ($port) {
56 55
 		$link = @mysqli_connect($host, $login, $pass, '', $port);
57
-	}
58
-	else {
56
+	} else {
59 57
 		$link = @mysqli_connect($host, $login, $pass);
60 58
 	}
61 59
 
@@ -543,16 +541,14 @@  discard block
 block discarded – undo
543 541
 		if (stripos($suite, 'SELECT') !== false) {
544 542
 			if ($echappe_textes) {
545 543
 				list($suite_echap, $textes) = query_echappe_textes($suite);
546
-			}
547
-			else {
544
+			} else {
548 545
 				$suite_echap = $suite;
549 546
 			}
550 547
 			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
551 548
 				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
552 549
 				if ($echappe_textes) {
553 550
 					$suite = query_reinjecte_textes($suite_echap, $textes);
554
-				}
555
-				else {
551
+				} else {
556 552
 					$suite = $suite_echap;
557 553
 				}
558 554
 			}
@@ -1630,8 +1626,7 @@  discard block
 block discarded – undo
1630 1626
 	if (!$type) {
1631 1627
 		if (is_bool($v)) {
1632 1628
 			return strval(intval($v));
1633
-		}
1634
-		elseif (is_numeric($v)) {
1629
+		} elseif (is_numeric($v)) {
1635 1630
 			return strval($v);
1636 1631
 		}
1637 1632
 		return "'" . addslashes($v) . "'";
Please login to merge, or discard this patch.