Completed
Push — master ( 11508c...b35b89 )
by cam
01:25
created
ecrire/req/mysql.php 2 patches
Indentation   +872 added lines, -872 removed lines patch added patch discarded remove patch
@@ -20,15 +20,15 @@  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
 if (!defined('_MYSQL_ENGINE')) {
31
-	define('_MYSQL_ENGINE', 'MyISAM');
31
+    define('_MYSQL_ENGINE', 'MyISAM');
32 32
 }
33 33
 
34 34
 /**
@@ -45,112 +45,112 @@  discard block
 block discarded – undo
45 45
  *     - tableau décrivant la connexion sinon
46 46
  */
47 47
 function req_mysql_dist($host, $port, $login, $pass, $db = '', $prefixe = '') {
48
-	if (!extension_loaded(\mysqli::class)) {
49
-		return false;
50
-	}
51
-
52
-	// si port est fourni mais pas host, c'est un socket -> compat avec vieille syntaxe de mysql_connect() et anciens fichiers connect.php
53
-	try {
54
-		if (
55
-			$port and !is_numeric($socket = $port)
56
-			and (!$host or $host === 'localhost')
57
-		) {
58
-			$link = @mysqli_connect($host, $login, $pass, '', null, $socket);
59
-		} elseif ($port) {
60
-			$link = @mysqli_connect($host, $login, $pass, '', $port);
61
-		} else {
62
-			$link = @mysqli_connect($host, $login, $pass);
63
-		}
64
-	} catch (\mysqli_sql_exception $e) {
65
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
66
-		$link = false;
67
-	}
68
-
69
-	if (!$link) {
70
-		spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
71
-
72
-		return false;
73
-	}
74
-	$last = '';
75
-	if (!$db) {
76
-		$ok = $link;
77
-		$db = 'spip';
78
-	} else {
79
-		$ok = mysqli_select_db($link, $db);
80
-		if (
81
-			defined('_MYSQL_SET_SQL_MODE')
82
-			or defined('_MYSQL_SQL_MODE_TEXT_NOT_NULL') // compatibilite
83
-		) {
84
-			mysqli_query($link, $last = "set sql_mode=''");
85
-		}
86
-	}
87
-
88
-	spip_log(
89
-		"Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
90
-		_LOG_DEBUG
91
-	);
92
-
93
-	return !$ok ? false : [
94
-		'db' => $db,
95
-		'last' => $last,
96
-		'prefixe' => $prefixe ?: $db,
97
-		'link' => $link,
98
-		'total_requetes' => 0,
99
-	];
48
+    if (!extension_loaded(\mysqli::class)) {
49
+        return false;
50
+    }
51
+
52
+    // si port est fourni mais pas host, c'est un socket -> compat avec vieille syntaxe de mysql_connect() et anciens fichiers connect.php
53
+    try {
54
+        if (
55
+            $port and !is_numeric($socket = $port)
56
+            and (!$host or $host === 'localhost')
57
+        ) {
58
+            $link = @mysqli_connect($host, $login, $pass, '', null, $socket);
59
+        } elseif ($port) {
60
+            $link = @mysqli_connect($host, $login, $pass, '', $port);
61
+        } else {
62
+            $link = @mysqli_connect($host, $login, $pass);
63
+        }
64
+    } catch (\mysqli_sql_exception $e) {
65
+        spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
66
+        $link = false;
67
+    }
68
+
69
+    if (!$link) {
70
+        spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
71
+
72
+        return false;
73
+    }
74
+    $last = '';
75
+    if (!$db) {
76
+        $ok = $link;
77
+        $db = 'spip';
78
+    } else {
79
+        $ok = mysqli_select_db($link, $db);
80
+        if (
81
+            defined('_MYSQL_SET_SQL_MODE')
82
+            or defined('_MYSQL_SQL_MODE_TEXT_NOT_NULL') // compatibilite
83
+        ) {
84
+            mysqli_query($link, $last = "set sql_mode=''");
85
+        }
86
+    }
87
+
88
+    spip_log(
89
+        "Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
90
+        _LOG_DEBUG
91
+    );
92
+
93
+    return !$ok ? false : [
94
+        'db' => $db,
95
+        'last' => $last,
96
+        'prefixe' => $prefixe ?: $db,
97
+        'link' => $link,
98
+        'total_requetes' => 0,
99
+    ];
100 100
 }
101 101
 
102 102
 
103 103
 $GLOBALS['spip_mysql_functions_1'] = [
104
-	'alter' => 'spip_mysql_alter',
105
-	'count' => 'spip_mysql_count',
106
-	'countsel' => 'spip_mysql_countsel',
107
-	'create' => 'spip_mysql_create',
108
-	'create_base' => 'spip_mysql_create_base',
109
-	'create_view' => 'spip_mysql_create_view',
110
-	'date_proche' => 'spip_mysql_date_proche',
111
-	'delete' => 'spip_mysql_delete',
112
-	'drop_table' => 'spip_mysql_drop_table',
113
-	'drop_view' => 'spip_mysql_drop_view',
114
-	'errno' => 'spip_mysql_errno',
115
-	'error' => 'spip_mysql_error',
116
-	'explain' => 'spip_mysql_explain',
117
-	'fetch' => 'spip_mysql_fetch',
118
-	'seek' => 'spip_mysql_seek',
119
-	'free' => 'spip_mysql_free',
120
-	'hex' => 'spip_mysql_hex',
121
-	'in' => 'spip_mysql_in',
122
-	'insert' => 'spip_mysql_insert',
123
-	'insertq' => 'spip_mysql_insertq',
124
-	'insertq_multi' => 'spip_mysql_insertq_multi',
125
-	'listdbs' => 'spip_mysql_listdbs',
126
-	'multi' => 'spip_mysql_multi',
127
-	'optimize' => 'spip_mysql_optimize',
128
-	'query' => 'spip_mysql_query',
129
-	'quote' => 'spip_mysql_quote',
130
-	'replace' => 'spip_mysql_replace',
131
-	'replace_multi' => 'spip_mysql_replace_multi',
132
-	'repair' => 'spip_mysql_repair',
133
-	'select' => 'spip_mysql_select',
134
-	'selectdb' => 'spip_mysql_selectdb',
135
-	'set_charset' => 'spip_mysql_set_charset',
136
-	'get_charset' => 'spip_mysql_get_charset',
137
-	'showbase' => 'spip_mysql_showbase',
138
-	'showtable' => 'spip_mysql_showtable',
139
-	'table_exists' => 'spip_mysql_table_exists',
140
-	'update' => 'spip_mysql_update',
141
-	'updateq' => 'spip_mysql_updateq',
142
-
143
-	// association de chaque nom http d'un charset aux couples MySQL
144
-	'charsets' => [
145
-		'cp1250' => ['charset' => 'cp1250', 'collation' => 'cp1250_general_ci'],
146
-		'cp1251' => ['charset' => 'cp1251', 'collation' => 'cp1251_general_ci'],
147
-		'cp1256' => ['charset' => 'cp1256', 'collation' => 'cp1256_general_ci'],
148
-		'iso-8859-1' => ['charset' => 'latin1', 'collation' => 'latin1_swedish_ci'],
104
+    'alter' => 'spip_mysql_alter',
105
+    'count' => 'spip_mysql_count',
106
+    'countsel' => 'spip_mysql_countsel',
107
+    'create' => 'spip_mysql_create',
108
+    'create_base' => 'spip_mysql_create_base',
109
+    'create_view' => 'spip_mysql_create_view',
110
+    'date_proche' => 'spip_mysql_date_proche',
111
+    'delete' => 'spip_mysql_delete',
112
+    'drop_table' => 'spip_mysql_drop_table',
113
+    'drop_view' => 'spip_mysql_drop_view',
114
+    'errno' => 'spip_mysql_errno',
115
+    'error' => 'spip_mysql_error',
116
+    'explain' => 'spip_mysql_explain',
117
+    'fetch' => 'spip_mysql_fetch',
118
+    'seek' => 'spip_mysql_seek',
119
+    'free' => 'spip_mysql_free',
120
+    'hex' => 'spip_mysql_hex',
121
+    'in' => 'spip_mysql_in',
122
+    'insert' => 'spip_mysql_insert',
123
+    'insertq' => 'spip_mysql_insertq',
124
+    'insertq_multi' => 'spip_mysql_insertq_multi',
125
+    'listdbs' => 'spip_mysql_listdbs',
126
+    'multi' => 'spip_mysql_multi',
127
+    'optimize' => 'spip_mysql_optimize',
128
+    'query' => 'spip_mysql_query',
129
+    'quote' => 'spip_mysql_quote',
130
+    'replace' => 'spip_mysql_replace',
131
+    'replace_multi' => 'spip_mysql_replace_multi',
132
+    'repair' => 'spip_mysql_repair',
133
+    'select' => 'spip_mysql_select',
134
+    'selectdb' => 'spip_mysql_selectdb',
135
+    'set_charset' => 'spip_mysql_set_charset',
136
+    'get_charset' => 'spip_mysql_get_charset',
137
+    'showbase' => 'spip_mysql_showbase',
138
+    'showtable' => 'spip_mysql_showtable',
139
+    'table_exists' => 'spip_mysql_table_exists',
140
+    'update' => 'spip_mysql_update',
141
+    'updateq' => 'spip_mysql_updateq',
142
+
143
+    // association de chaque nom http d'un charset aux couples MySQL
144
+    'charsets' => [
145
+        'cp1250' => ['charset' => 'cp1250', 'collation' => 'cp1250_general_ci'],
146
+        'cp1251' => ['charset' => 'cp1251', 'collation' => 'cp1251_general_ci'],
147
+        'cp1256' => ['charset' => 'cp1256', 'collation' => 'cp1256_general_ci'],
148
+        'iso-8859-1' => ['charset' => 'latin1', 'collation' => 'latin1_swedish_ci'],
149 149
 //'iso-8859-6'=>array('charset'=>'latin1','collation'=>'latin1_swedish_ci'),
150
-		'iso-8859-9' => ['charset' => 'latin5', 'collation' => 'latin5_turkish_ci'],
150
+        'iso-8859-9' => ['charset' => 'latin5', 'collation' => 'latin5_turkish_ci'],
151 151
 //'iso-8859-15'=>array('charset'=>'latin1','collation'=>'latin1_swedish_ci'),
152
-		'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci']
153
-	]
152
+        'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci']
153
+    ]
154 154
 ];
155 155
 
156 156
 
@@ -161,9 +161,9 @@  discard block
 block discarded – undo
161 161
  * @return Object Information de connexion pour mysqli
162 162
  */
163 163
 function _mysql_link($serveur = '') {
164
-	$link = &$GLOBALS['connexions'][$serveur ?: 0]['link'];
164
+    $link = &$GLOBALS['connexions'][$serveur ?: 0]['link'];
165 165
 
166
-	return $link;
166
+    return $link;
167 167
 }
168 168
 
169 169
 
@@ -176,10 +176,10 @@  discard block
 block discarded – undo
176 176
  * @return mysqli_result|bool Jeu de résultats pour fetch()
177 177
  */
178 178
 function spip_mysql_set_charset($charset, $serveur = '', $requeter = true) {
179
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
180
-	spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
179
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
180
+    spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
181 181
 
182
-	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
182
+    return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
183 183
 }
184 184
 
185 185
 
@@ -192,11 +192,11 @@  discard block
 block discarded – undo
192 192
  * @return array Description du charset (son nom est dans 'charset')
193 193
  */
194 194
 function spip_mysql_get_charset($charset = [], $serveur = '', $requeter = true) {
195
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
196
-	$connexion['last'] = $c = 'SHOW CHARACTER SET'
197
-		. (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
195
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
196
+    $connexion['last'] = $c = 'SHOW CHARACTER SET'
197
+        . (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
198 198
 
199
-	return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
199
+    return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
200 200
 }
201 201
 
202 202
 /**
@@ -212,80 +212,80 @@  discard block
 block discarded – undo
212 212
  */
213 213
 function spip_mysql_query($query, $serveur = '', $requeter = true) {
214 214
 
215
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
216
-	$prefixe = $connexion['prefixe'];
217
-	$link = $connexion['link'];
218
-	$db = $connexion['db'];
219
-
220
-	$query = _mysql_traite_query($query, $db, $prefixe);
221
-
222
-	// renvoyer la requete inerte si demandee
223
-	if (!$requeter) {
224
-		return $query;
225
-	}
226
-
227
-	if (isset($_GET['var_profile']) or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
228
-		include_spip('public/tracer');
229
-		$t = trace_query_start();
230
-	} else {
231
-		$t = 0;
232
-	}
233
-
234
-	$connexion['last'] = $query;
235
-	$connexion['total_requetes']++;
236
-
237
-	// ajouter un debug utile dans log/mysql-slow.log ?
238
-	$debug = '';
239
-	if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
240
-		if (isset($GLOBALS['debug']['aucasou'])) {
241
-			[, $id, , $infos] = $GLOBALS['debug']['aucasou'];
242
-			$debug .= "BOUCLE$id @ " . ($infos[0] ?? '') . ' | ';
243
-		}
244
-		if (isset($_SERVER['REQUEST_URI'])) {
245
-			$debug .= $_SERVER['REQUEST_URI'];
246
-		}
247
-		if (!empty($GLOBALS['ip'])) {
248
-			$debug .= ' + ' . $GLOBALS['ip'];
249
-		}
250
-		$debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
251
-	}
252
-	try {
253
-		$r = mysqli_query($link, $query . $debug);
254
-	} catch (\mysqli_sql_exception $e) {
255
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
256
-		$r = false;
257
-		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
258
-		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
259
-	}
260
-
261
-	//Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
262
-	if ($e = spip_mysql_errno($serveur)) {  // Log d'un Gone Away
263
-		if ($e == 2006) { //Si Gone Away on relance une connexion vierge
264
-			//Fermer la connexion defaillante
265
-			mysqli_close($connexion['link']);
266
-			unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
267
-			//Relancer une connexion vierge
268
-			spip_connect($serveur);
269
-			$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
270
-			$link = $connexion['link'];
271
-			//On retente au cas où
272
-			try {
273
-				$r = mysqli_query($link, $query . $debug);
274
-			} catch (\mysqli_sql_exception $e) {
275
-				spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
276
-				$r = false;
277
-				// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
278
-				// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
279
-			}
280
-		}
281
-	}
282
-
283
-	// Log de l'erreur eventuelle
284
-	if ($e = spip_mysql_errno($serveur)) {
285
-		// et du fautif
286
-		$e .= spip_mysql_error($query, $serveur);
287
-	}
288
-	return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
215
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
216
+    $prefixe = $connexion['prefixe'];
217
+    $link = $connexion['link'];
218
+    $db = $connexion['db'];
219
+
220
+    $query = _mysql_traite_query($query, $db, $prefixe);
221
+
222
+    // renvoyer la requete inerte si demandee
223
+    if (!$requeter) {
224
+        return $query;
225
+    }
226
+
227
+    if (isset($_GET['var_profile']) or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
228
+        include_spip('public/tracer');
229
+        $t = trace_query_start();
230
+    } else {
231
+        $t = 0;
232
+    }
233
+
234
+    $connexion['last'] = $query;
235
+    $connexion['total_requetes']++;
236
+
237
+    // ajouter un debug utile dans log/mysql-slow.log ?
238
+    $debug = '';
239
+    if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
240
+        if (isset($GLOBALS['debug']['aucasou'])) {
241
+            [, $id, , $infos] = $GLOBALS['debug']['aucasou'];
242
+            $debug .= "BOUCLE$id @ " . ($infos[0] ?? '') . ' | ';
243
+        }
244
+        if (isset($_SERVER['REQUEST_URI'])) {
245
+            $debug .= $_SERVER['REQUEST_URI'];
246
+        }
247
+        if (!empty($GLOBALS['ip'])) {
248
+            $debug .= ' + ' . $GLOBALS['ip'];
249
+        }
250
+        $debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
251
+    }
252
+    try {
253
+        $r = mysqli_query($link, $query . $debug);
254
+    } catch (\mysqli_sql_exception $e) {
255
+        spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
256
+        $r = false;
257
+        // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
258
+        // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
259
+    }
260
+
261
+    //Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
262
+    if ($e = spip_mysql_errno($serveur)) {  // Log d'un Gone Away
263
+        if ($e == 2006) { //Si Gone Away on relance une connexion vierge
264
+            //Fermer la connexion defaillante
265
+            mysqli_close($connexion['link']);
266
+            unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
267
+            //Relancer une connexion vierge
268
+            spip_connect($serveur);
269
+            $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
270
+            $link = $connexion['link'];
271
+            //On retente au cas où
272
+            try {
273
+                $r = mysqli_query($link, $query . $debug);
274
+            } catch (\mysqli_sql_exception $e) {
275
+                spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
276
+                $r = false;
277
+                // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
278
+                // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
279
+            }
280
+        }
281
+    }
282
+
283
+    // Log de l'erreur eventuelle
284
+    if ($e = spip_mysql_errno($serveur)) {
285
+        // et du fautif
286
+        $e .= spip_mysql_error($query, $serveur);
287
+    }
288
+    return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
289 289
 }
290 290
 
291 291
 /**
@@ -300,12 +300,12 @@  discard block
 block discarded – undo
300 300
  *     - array  : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
301 301
  */
302 302
 function spip_mysql_alter($query, $serveur = '', $requeter = true) {
303
-	// ici on supprime les ` entourant le nom de table pour permettre
304
-	// la transposition du prefixe, compte tenu que les plugins ont la mauvaise habitude
305
-	// d'utiliser ceux-ci, copie-colle de phpmyadmin
306
-	$query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
303
+    // ici on supprime les ` entourant le nom de table pour permettre
304
+    // la transposition du prefixe, compte tenu que les plugins ont la mauvaise habitude
305
+    // d'utiliser ceux-ci, copie-colle de phpmyadmin
306
+    $query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
307 307
 
308
-	return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
308
+    return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
309 309
 }
310 310
 
311 311
 
@@ -318,9 +318,9 @@  discard block
 block discarded – undo
318 318
  * @return bool            Toujours true
319 319
  */
320 320
 function spip_mysql_optimize($table, $serveur = '', $requeter = true) {
321
-	spip_mysql_query('OPTIMIZE TABLE ' . $table);
321
+    spip_mysql_query('OPTIMIZE TABLE ' . $table);
322 322
 
323
-	return true;
323
+    return true;
324 324
 }
325 325
 
326 326
 
@@ -333,18 +333,18 @@  discard block
 block discarded – undo
333 333
  * @return array           Tableau de l'explication
334 334
  */
335 335
 function spip_mysql_explain($query, $serveur = '', $requeter = true) {
336
-	if (strpos(ltrim($query), 'SELECT') !== 0) {
337
-		return [];
338
-	}
339
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
340
-	$prefixe = $connexion['prefixe'];
341
-	$link = $connexion['link'];
342
-	$db = $connexion['db'];
343
-
344
-	$query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
345
-	$r = mysqli_query($link, $query);
346
-
347
-	return spip_mysql_fetch($r, null, $serveur);
336
+    if (strpos(ltrim($query), 'SELECT') !== 0) {
337
+        return [];
338
+    }
339
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
340
+    $prefixe = $connexion['prefixe'];
341
+    $link = $connexion['link'];
342
+    $db = $connexion['db'];
343
+
344
+    $query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
345
+    $r = mysqli_query($link, $query);
346
+
347
+    return spip_mysql_fetch($r, null, $serveur);
348 348
 }
349 349
 
350 350
 
@@ -373,35 +373,35 @@  discard block
 block discarded – undo
373 373
  *     - array  : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
374 374
  */
375 375
 function spip_mysql_select(
376
-	$select,
377
-	$from,
378
-	$where = '',
379
-	$groupby = '',
380
-	$orderby = '',
381
-	$limit = '',
382
-	$having = '',
383
-	$serveur = '',
384
-	$requeter = true
376
+    $select,
377
+    $from,
378
+    $where = '',
379
+    $groupby = '',
380
+    $orderby = '',
381
+    $limit = '',
382
+    $having = '',
383
+    $serveur = '',
384
+    $requeter = true
385 385
 ) {
386 386
 
387 387
 
388
-	$from = (!is_array($from) ? $from : spip_mysql_select_as($from));
389
-	$query =
390
-		calculer_mysql_expression('SELECT', $select, ', ')
391
-		. calculer_mysql_expression('FROM', $from, ', ')
392
-		. calculer_mysql_expression('WHERE', $where)
393
-		. calculer_mysql_expression('GROUP BY', $groupby, ',')
394
-		. calculer_mysql_expression('HAVING', $having)
395
-		. ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
396
-		. ($limit ? "\nLIMIT $limit" : '');
388
+    $from = (!is_array($from) ? $from : spip_mysql_select_as($from));
389
+    $query =
390
+        calculer_mysql_expression('SELECT', $select, ', ')
391
+        . calculer_mysql_expression('FROM', $from, ', ')
392
+        . calculer_mysql_expression('WHERE', $where)
393
+        . calculer_mysql_expression('GROUP BY', $groupby, ',')
394
+        . calculer_mysql_expression('HAVING', $having)
395
+        . ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
396
+        . ($limit ? "\nLIMIT $limit" : '');
397 397
 
398
-	// renvoyer la requete inerte si demandee
399
-	if ($requeter === false) {
400
-		return $query;
401
-	}
402
-	$r = spip_mysql_query($query, $serveur, $requeter);
398
+    // renvoyer la requete inerte si demandee
399
+    if ($requeter === false) {
400
+        return $query;
401
+    }
402
+    $r = spip_mysql_query($query, $serveur, $requeter);
403 403
 
404
-	return $r ?: $query;
404
+    return $r ?: $query;
405 405
 }
406 406
 
407 407
 
@@ -418,7 +418,7 @@  discard block
 block discarded – undo
418 418
  * @return string Texte du orderby préparé
419 419
  */
420 420
 function spip_mysql_order($orderby) {
421
-	return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
421
+    return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
422 422
 }
423 423
 
424 424
 
@@ -441,26 +441,26 @@  discard block
 block discarded – undo
441 441
  *     Contrainte pour clause WHERE
442 442
  */
443 443
 function calculer_mysql_where($v) {
444
-	if (!is_array($v)) {
445
-		return $v;
446
-	}
447
-
448
-	$op = array_shift($v);
449
-	if (!($n = count($v))) {
450
-		return $op;
451
-	} else {
452
-		$arg = calculer_mysql_where(array_shift($v));
453
-		if ($n == 1) {
454
-			return "$op($arg)";
455
-		} else {
456
-			$arg2 = calculer_mysql_where(array_shift($v));
457
-			if ($n == 2) {
458
-				return "($arg $op $arg2)";
459
-			} else {
460
-				return "($arg $op ($arg2) : $v[0])";
461
-			}
462
-		}
463
-	}
444
+    if (!is_array($v)) {
445
+        return $v;
446
+    }
447
+
448
+    $op = array_shift($v);
449
+    if (!($n = count($v))) {
450
+        return $op;
451
+    } else {
452
+        $arg = calculer_mysql_where(array_shift($v));
453
+        if ($n == 1) {
454
+            return "$op($arg)";
455
+        } else {
456
+            $arg2 = calculer_mysql_where(array_shift($v));
457
+            if ($n == 2) {
458
+                return "($arg $op $arg2)";
459
+            } else {
460
+                return "($arg $op ($arg2) : $v[0])";
461
+            }
462
+        }
463
+    }
464 464
 }
465 465
 
466 466
 /**
@@ -475,21 +475,21 @@  discard block
 block discarded – undo
475 475
  * @return string            Texte de l'expression, une partie donc, du texte la requête.
476 476
  */
477 477
 function calculer_mysql_expression($expression, $v, $join = 'AND') {
478
-	if (empty($v)) {
479
-		return '';
480
-	}
481
-
482
-	$exp = "\n$expression ";
483
-
484
-	if (!is_array($v)) {
485
-		return $exp . $v;
486
-	} else {
487
-		if (strtoupper($join) === 'AND') {
488
-			return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
489
-		} else {
490
-			return $exp . join($join, $v);
491
-		}
492
-	}
478
+    if (empty($v)) {
479
+        return '';
480
+    }
481
+
482
+    $exp = "\n$expression ";
483
+
484
+    if (!is_array($v)) {
485
+        return $exp . $v;
486
+    } else {
487
+        if (strtoupper($join) === 'AND') {
488
+            return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
489
+        } else {
490
+            return $exp . join($join, $v);
491
+        }
492
+    }
493 493
 }
494 494
 
495 495
 
@@ -500,26 +500,26 @@  discard block
 block discarded – undo
500 500
  * @return string Sélection de colonnes pour une clause SELECT
501 501
  */
502 502
 function spip_mysql_select_as($args) {
503
-	$res = '';
504
-	foreach ($args as $k => $v) {
505
-		if (substr($k, -1) == '@') {
506
-			// c'est une jointure qui se refere au from precedent
507
-			// pas de virgule
508
-			$res .= '  ' . $v;
509
-		} else {
510
-			if (!is_numeric($k)) {
511
-				$p = strpos($v, ' ');
512
-				if ($p) {
513
-					$v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
514
-				} else {
515
-					$v .= " AS `$k`";
516
-				}
517
-			}
518
-			$res .= ', ' . $v;
519
-		}
520
-	}
521
-
522
-	return substr($res, 2);
503
+    $res = '';
504
+    foreach ($args as $k => $v) {
505
+        if (substr($k, -1) == '@') {
506
+            // c'est une jointure qui se refere au from precedent
507
+            // pas de virgule
508
+            $res .= '  ' . $v;
509
+        } else {
510
+            if (!is_numeric($k)) {
511
+                $p = strpos($v, ' ');
512
+                if ($p) {
513
+                    $v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
514
+                } else {
515
+                    $v .= " AS `$k`";
516
+                }
517
+            }
518
+            $res .= ', ' . $v;
519
+        }
520
+    }
521
+
522
+    return substr($res, 2);
523 523
 }
524 524
 
525 525
 
@@ -544,58 +544,58 @@  discard block
 block discarded – undo
544 544
  */
545 545
 function _mysql_traite_query($query, $db = '', $prefixe = '', $echappe_textes = true) {
546 546
 
547
-	if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
548
-		$pref = '`' . $db . '`.';
549
-	} else {
550
-		$pref = '';
551
-	}
552
-
553
-	if ($prefixe) {
554
-		$pref .= $prefixe . '_';
555
-	}
556
-
557
-	if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
558
-		$suite = '';
559
-	} else {
560
-		$suite = strstr($query, (string) $regs[0]);
561
-		$query = substr($query, 0, -strlen($suite));
562
-		// propager le prefixe en cas de requete imbriquee
563
-		// il faut alors echapper les chaine avant de le faire, pour ne pas risquer de
564
-		// modifier une requete qui est en fait juste du texte dans un champ
565
-		if (stripos($suite, 'SELECT') !== false) {
566
-			if ($echappe_textes) {
567
-				[$suite_echap, $textes] = query_echappe_textes($suite);
568
-			}
569
-			else {
570
-				$suite_echap = $suite;
571
-			}
572
-			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
573
-				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
574
-				if ($echappe_textes) {
575
-					$suite = query_reinjecte_textes($suite_echap, $textes);
576
-				}
577
-				else {
578
-					$suite = $suite_echap;
579
-				}
580
-			}
581
-		}
582
-	}
583
-	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
584
-
585
-	// en option, remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
586
-	// remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
587
-	if (
588
-		defined('_MYSQL_NOPLANES')
589
-		and _MYSQL_NOPLANES
590
-		and !empty($GLOBALS['meta']['charset_sql_connexion'])
591
-		and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
592
-	) {
593
-		include_spip('inc/charsets');
594
-		$r = utf8_noplanes($r);
595
-	}
596
-
597
-	#spip_log("_mysql_traite_query: " . substr($r,0, 50) . ".... $db, $prefixe", _LOG_DEBUG);
598
-	return $r;
547
+    if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
548
+        $pref = '`' . $db . '`.';
549
+    } else {
550
+        $pref = '';
551
+    }
552
+
553
+    if ($prefixe) {
554
+        $pref .= $prefixe . '_';
555
+    }
556
+
557
+    if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
558
+        $suite = '';
559
+    } else {
560
+        $suite = strstr($query, (string) $regs[0]);
561
+        $query = substr($query, 0, -strlen($suite));
562
+        // propager le prefixe en cas de requete imbriquee
563
+        // il faut alors echapper les chaine avant de le faire, pour ne pas risquer de
564
+        // modifier une requete qui est en fait juste du texte dans un champ
565
+        if (stripos($suite, 'SELECT') !== false) {
566
+            if ($echappe_textes) {
567
+                [$suite_echap, $textes] = query_echappe_textes($suite);
568
+            }
569
+            else {
570
+                $suite_echap = $suite;
571
+            }
572
+            if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
573
+                $suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
574
+                if ($echappe_textes) {
575
+                    $suite = query_reinjecte_textes($suite_echap, $textes);
576
+                }
577
+                else {
578
+                    $suite = $suite_echap;
579
+                }
580
+            }
581
+        }
582
+    }
583
+    $r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
584
+
585
+    // en option, remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
586
+    // remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
587
+    if (
588
+        defined('_MYSQL_NOPLANES')
589
+        and _MYSQL_NOPLANES
590
+        and !empty($GLOBALS['meta']['charset_sql_connexion'])
591
+        and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
592
+    ) {
593
+        include_spip('inc/charsets');
594
+        $r = utf8_noplanes($r);
595
+    }
596
+
597
+    #spip_log("_mysql_traite_query: " . substr($r,0, 50) . ".... $db, $prefixe", _LOG_DEBUG);
598
+    return $r;
599 599
 }
600 600
 
601 601
 /**
@@ -613,13 +613,13 @@  discard block
 block discarded – undo
613 613
  *     - False en cas d'erreur.
614 614
  **/
615 615
 function spip_mysql_selectdb($db, $serveur = '', $requeter = true) {
616
-	$link = _mysql_link($serveur);
617
-	$ok = mysqli_select_db($link, $db);
618
-	if (!$ok) {
619
-		spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
620
-	}
616
+    $link = _mysql_link($serveur);
617
+    $ok = mysqli_select_db($link, $db);
618
+    if (!$ok) {
619
+        spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
620
+    }
621 621
 
622
-	return $ok;
622
+    return $ok;
623 623
 }
624 624
 
625 625
 
@@ -640,14 +640,14 @@  discard block
 block discarded – undo
640 640
  *     Liste de noms de bases de données
641 641
  **/
642 642
 function spip_mysql_listdbs($serveur = '', $requeter = true) {
643
-	$dbs = [];
644
-	if ($res = spip_mysql_query('SHOW DATABASES', $serveur)) {
645
-		while ($row = mysqli_fetch_assoc($res)) {
646
-			$dbs[] = $row['Database'];
647
-		}
648
-	}
649
-
650
-	return $dbs;
643
+    $dbs = [];
644
+    if ($res = spip_mysql_query('SHOW DATABASES', $serveur)) {
645
+        while ($row = mysqli_fetch_assoc($res)) {
646
+            $dbs[] = $row['Database'];
647
+        }
648
+    }
649
+
650
+    return $dbs;
651 651
 }
652 652
 
653 653
 
@@ -670,73 +670,73 @@  discard block
 block discarded – undo
670 670
  *     - true si la requête réussie, false sinon.
671 671
  */
672 672
 function spip_mysql_create(
673
-	$nom,
674
-	$champs,
675
-	$cles,
676
-	$autoinc = false,
677
-	$temporary = false,
678
-	$serveur = '',
679
-	$requeter = true
673
+    $nom,
674
+    $champs,
675
+    $cles,
676
+    $autoinc = false,
677
+    $temporary = false,
678
+    $serveur = '',
679
+    $requeter = true
680 680
 ) {
681 681
 
682
-	$query = '';
683
-	$keys = '';
684
-	$s = '';
685
-	$p = '';
686
-
687
-	// certains plugins declarent les tables  (permet leur inclusion dans le dump)
688
-	// sans les renseigner (laisse le compilo recuperer la description)
689
-	if (!is_array($champs) || !is_array($cles)) {
690
-		return;
691
-	}
692
-
693
-	$res = spip_mysql_query('SELECT version() as v', $serveur);
694
-	if (($row = mysqli_fetch_array($res)) && (version_compare($row['v'], '5.0', '>='))) {
695
-		spip_mysql_query("SET sql_mode=''", $serveur);
696
-	}
697
-
698
-	foreach ($cles as $k => $v) {
699
-		$keys .= "$s\n\t\t$k ($v)";
700
-		if ($k == 'PRIMARY KEY') {
701
-			$p = $v;
702
-		}
703
-		$s = ',';
704
-	}
705
-	$s = '';
706
-
707
-	$character_set = '';
708
-	if (@$GLOBALS['meta']['charset_sql_base']) {
709
-		$character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
710
-	}
711
-	if (@$GLOBALS['meta']['charset_collation_sql_base']) {
712
-		$character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
713
-	}
714
-
715
-	foreach ($champs as $k => $v) {
716
-		$v = _mysql_remplacements_definitions_table($v);
717
-		if (preg_match(',([a-z]*\s*(\(\s*[0-9]*\s*\))?(\s*binary)?),i', $v, $defs)) {
718
-			if (
719
-				preg_match(',(char|text),i', $defs[1])
720
-				and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
721
-			) {
722
-				$v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
723
-			}
724
-		}
725
-
726
-		$query .= "$s\n\t\t$k $v"
727
-			. (($autoinc && ($p == $k) && preg_match(',\b(big|small|medium)?int\b,i', $v))
728
-				? ' auto_increment'
729
-				: ''
730
-			);
731
-		$s = ',';
732
-	}
733
-	$temporary = $temporary ? 'TEMPORARY' : '';
734
-	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
735
-		. ' ENGINE=' . _MYSQL_ENGINE
736
-		. ($character_set ? " DEFAULT $character_set" : '')
737
-		. "\n";
738
-
739
-	return spip_mysql_query($q, $serveur);
682
+    $query = '';
683
+    $keys = '';
684
+    $s = '';
685
+    $p = '';
686
+
687
+    // certains plugins declarent les tables  (permet leur inclusion dans le dump)
688
+    // sans les renseigner (laisse le compilo recuperer la description)
689
+    if (!is_array($champs) || !is_array($cles)) {
690
+        return;
691
+    }
692
+
693
+    $res = spip_mysql_query('SELECT version() as v', $serveur);
694
+    if (($row = mysqli_fetch_array($res)) && (version_compare($row['v'], '5.0', '>='))) {
695
+        spip_mysql_query("SET sql_mode=''", $serveur);
696
+    }
697
+
698
+    foreach ($cles as $k => $v) {
699
+        $keys .= "$s\n\t\t$k ($v)";
700
+        if ($k == 'PRIMARY KEY') {
701
+            $p = $v;
702
+        }
703
+        $s = ',';
704
+    }
705
+    $s = '';
706
+
707
+    $character_set = '';
708
+    if (@$GLOBALS['meta']['charset_sql_base']) {
709
+        $character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
710
+    }
711
+    if (@$GLOBALS['meta']['charset_collation_sql_base']) {
712
+        $character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
713
+    }
714
+
715
+    foreach ($champs as $k => $v) {
716
+        $v = _mysql_remplacements_definitions_table($v);
717
+        if (preg_match(',([a-z]*\s*(\(\s*[0-9]*\s*\))?(\s*binary)?),i', $v, $defs)) {
718
+            if (
719
+                preg_match(',(char|text),i', $defs[1])
720
+                and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
721
+            ) {
722
+                $v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
723
+            }
724
+        }
725
+
726
+        $query .= "$s\n\t\t$k $v"
727
+            . (($autoinc && ($p == $k) && preg_match(',\b(big|small|medium)?int\b,i', $v))
728
+                ? ' auto_increment'
729
+                : ''
730
+            );
731
+        $s = ',';
732
+    }
733
+    $temporary = $temporary ? 'TEMPORARY' : '';
734
+    $q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
735
+        . ' ENGINE=' . _MYSQL_ENGINE
736
+        . ($character_set ? " DEFAULT $character_set" : '')
737
+        . "\n";
738
+
739
+    return spip_mysql_query($q, $serveur);
740 740
 }
741 741
 
742 742
 
@@ -749,25 +749,25 @@  discard block
 block discarded – undo
749 749
  *     Définition SQL adaptée pour MySQL d'un champ de table
750 750
  */
751 751
 function _mysql_remplacements_definitions_table($query) {
752
-	// quelques remplacements
753
-	$num = '(\s*\([0-9]*\))?';
754
-	$enum = '(\s*\([^\)]*\))?';
755
-
756
-	$remplace = [
757
-		'/VARCHAR(\s*[^\s\(])/is' => 'VARCHAR(255)\\1',
758
-		'/^TIMESTAMP($| NULL DEFAULT NULL)/is' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
759
-	];
760
-
761
-	if (is_string($query)) {
762
-		$query = preg_replace(array_keys($remplace), $remplace, $query);
763
-	} elseif (is_array($query)) {
764
-		$keys = array_keys($remplace);
765
-		foreach ($query as $k => $q) {
766
-			$query[$k] = preg_replace($keys, $remplace, $q);
767
-		}
768
-	}
769
-
770
-	return $query;
752
+    // quelques remplacements
753
+    $num = '(\s*\([0-9]*\))?';
754
+    $enum = '(\s*\([^\)]*\))?';
755
+
756
+    $remplace = [
757
+        '/VARCHAR(\s*[^\s\(])/is' => 'VARCHAR(255)\\1',
758
+        '/^TIMESTAMP($| NULL DEFAULT NULL)/is' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
759
+    ];
760
+
761
+    if (is_string($query)) {
762
+        $query = preg_replace(array_keys($remplace), $remplace, $query);
763
+    } elseif (is_array($query)) {
764
+        $keys = array_keys($remplace);
765
+        foreach ($query as $k => $q) {
766
+            $query[$k] = preg_replace($keys, $remplace, $q);
767
+        }
768
+    }
769
+
770
+    return $query;
771 771
 }
772 772
 
773 773
 
@@ -780,7 +780,7 @@  discard block
 block discarded – undo
780 780
  * @return bool true si la base est créee.
781 781
  **/
782 782
 function spip_mysql_create_base($nom, $serveur = '', $requeter = true) {
783
-	return spip_mysql_query("CREATE DATABASE `$nom`", $serveur, $requeter);
783
+    return spip_mysql_query("CREATE DATABASE `$nom`", $serveur, $requeter);
784 784
 }
785 785
 
786 786
 
@@ -801,19 +801,19 @@  discard block
 block discarded – undo
801 801
  *     - string texte de la requête si $requeter vaut false
802 802
  */
803 803
 function spip_mysql_create_view($nom, $query_select, $serveur = '', $requeter = true) {
804
-	if (!$query_select) {
805
-		return false;
806
-	}
807
-	// vue deja presente
808
-	if (sql_showtable($nom, false, $serveur)) {
809
-		spip_log("Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)", _LOG_ERREUR);
804
+    if (!$query_select) {
805
+        return false;
806
+    }
807
+    // vue deja presente
808
+    if (sql_showtable($nom, false, $serveur)) {
809
+        spip_log("Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)", _LOG_ERREUR);
810 810
 
811
-		return false;
812
-	}
811
+        return false;
812
+    }
813 813
 
814
-	$query = "CREATE VIEW $nom AS " . $query_select;
814
+    $query = "CREATE VIEW $nom AS " . $query_select;
815 815
 
816
-	return spip_mysql_query($query, $serveur, $requeter);
816
+    return spip_mysql_query($query, $serveur, $requeter);
817 817
 }
818 818
 
819 819
 
@@ -829,11 +829,11 @@  discard block
 block discarded – undo
829 829
  *     - true si la requête a réussie, false sinon
830 830
  */
831 831
 function spip_mysql_drop_table($table, $exist = '', $serveur = '', $requeter = true) {
832
-	if ($exist) {
833
-		$exist = ' IF EXISTS';
834
-	}
832
+    if ($exist) {
833
+        $exist = ' IF EXISTS';
834
+    }
835 835
 
836
-	return spip_mysql_query("DROP TABLE$exist $table", $serveur, $requeter);
836
+    return spip_mysql_query("DROP TABLE$exist $table", $serveur, $requeter);
837 837
 }
838 838
 
839 839
 /**
@@ -848,11 +848,11 @@  discard block
 block discarded – undo
848 848
  *     - true si la requête a réussie, false sinon
849 849
  */
850 850
 function spip_mysql_drop_view($view, $exist = '', $serveur = '', $requeter = true) {
851
-	if ($exist) {
852
-		$exist = ' IF EXISTS';
853
-	}
851
+    if ($exist) {
852
+        $exist = ' IF EXISTS';
853
+    }
854 854
 
855
-	return spip_mysql_query("DROP VIEW$exist $view", $serveur, $requeter);
855
+    return spip_mysql_query("DROP VIEW$exist $view", $serveur, $requeter);
856 856
 }
857 857
 
858 858
 /**
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
  *     Ressource à utiliser avec sql_fetch()
870 870
  **/
871 871
 function spip_mysql_showbase($match, $serveur = '', $requeter = true) {
872
-	return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
872
+    return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
873 873
 }
874 874
 
875 875
 /**
@@ -885,17 +885,17 @@  discard block
 block discarded – undo
885 885
  *     - true si la requête a réussie, false sinon
886 886
  */
887 887
 function spip_mysql_repair($table, $serveur = '', $requeter = true) {
888
-	$table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true));
889
-	$engine = $table_status['Engine'];
890
-	if ($engine == 'InnoDB') {
891
-		if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) {
892
-			return [' OK '];
893
-		}
894
-	} elseif ($engine == 'MyISAM') {
895
-		return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
896
-	} else {
897
-		spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG);
898
-	}
888
+    $table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true));
889
+    $engine = $table_status['Engine'];
890
+    if ($engine == 'InnoDB') {
891
+        if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) {
892
+            return [' OK '];
893
+        }
894
+    } elseif ($engine == 'MyISAM') {
895
+        return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
896
+    } else {
897
+        spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG);
898
+    }
899 899
 }
900 900
 
901 901
 /**
@@ -913,12 +913,12 @@  discard block
 block discarded – undo
913 913
  *     - string : requete sql, si $requeter = true
914 914
  **/
915 915
 function spip_mysql_table_exists(string $table, $serveur = '', $requeter = true) {
916
-	$r = spip_mysql_query('SHOW TABLES LIKE ' . _q($table), $serveur, $requeter);
917
-	if (!$requeter) {
918
-		return $r;
919
-	}
920
-	$res = spip_mysql_fetch($r);
921
-	return (bool) $res;
916
+    $r = spip_mysql_query('SHOW TABLES LIKE ' . _q($table), $serveur, $requeter);
917
+    if (!$requeter) {
918
+        return $r;
919
+    }
920
+    $res = spip_mysql_fetch($r);
921
+    return (bool) $res;
922 922
 }
923 923
 
924 924
 define('_MYSQL_RE_SHOW_TABLE', '/^[^(),]*\(((?:[^()]*\((?:[^()]*\([^()]*\))?[^()]*\)[^()]*)*[^()]*)\)[^()]*$/');
@@ -941,86 +941,86 @@  discard block
 block discarded – undo
941 941
  *     - array description de la table sinon
942 942
  */
943 943
 function spip_mysql_showtable($nom_table, $serveur = '', $requeter = true) {
944
-	$s = spip_mysql_query("SHOW CREATE TABLE `$nom_table`", $serveur, $requeter);
945
-	if (!$s) {
946
-		return '';
947
-	}
948
-	if (!$requeter) {
949
-		return $s;
950
-	}
951
-
952
-	[, $a] = mysqli_fetch_array($s, MYSQLI_NUM);
953
-	if (preg_match(_MYSQL_RE_SHOW_TABLE, $a, $r)) {
954
-		$desc = $r[1];
955
-		// extraction d'une KEY éventuelle en prenant garde de ne pas
956
-		// relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
957
-		if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
958
-			$namedkeys = $r[2];
959
-			$desc = $r[1];
960
-		} else {
961
-			$namedkeys = '';
962
-		}
963
-
964
-		$fields = [];
965
-		foreach (preg_split('/,\s*`/', $desc) as $v) {
966
-			preg_match('/^\s*`?([^`]*)`\s*(.*)/', $v, $r);
967
-			$fields[strtolower($r[1])] = $r[2];
968
-		}
969
-		$keys = [];
970
-
971
-		foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
972
-			if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
973
-				$k = str_replace('`', '', trim($r[1]));
974
-				$t = strtolower(str_replace('`', '', $r[2]));
975
-				if ($k && !isset($keys[$k])) {
976
-					$keys[$k] = $t;
977
-				} else {
978
-					$keys[] = $t;
979
-				}
980
-			}
981
-		}
982
-		spip_mysql_free($s);
983
-
984
-		return ['field' => $fields, 'key' => $keys];
985
-	}
986
-
987
-	$res = spip_mysql_query("SHOW COLUMNS FROM `$nom_table`", $serveur);
988
-	if ($res) {
989
-		$nfields = [];
990
-		$nkeys = [];
991
-		while ($val = spip_mysql_fetch($res)) {
992
-			$nfields[$val['Field']] = $val['Type'];
993
-			if ($val['Null'] == 'NO') {
994
-				$nfields[$val['Field']] .= ' NOT NULL';
995
-			}
996
-			if ($val['Default'] === '0' || $val['Default']) {
997
-				if (preg_match('/[A-Z_]/', $val['Default'])) {
998
-					$nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
999
-				} else {
1000
-					$nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
1001
-				}
1002
-			}
1003
-			if ($val['Extra']) {
1004
-				$nfields[$val['Field']] .= ' ' . $val['Extra'];
1005
-			}
1006
-			if ($val['Key'] == 'PRI') {
1007
-				$nkeys['PRIMARY KEY'] = $val['Field'];
1008
-			} else {
1009
-				if ($val['Key'] == 'MUL') {
1010
-					$nkeys['KEY ' . $val['Field']] = $val['Field'];
1011
-				} else {
1012
-					if ($val['Key'] == 'UNI') {
1013
-						$nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
1014
-					}
1015
-				}
1016
-			}
1017
-		}
1018
-		spip_mysql_free($res);
1019
-
1020
-		return ['field' => $nfields, 'key' => $nkeys];
1021
-	}
1022
-
1023
-	return '';
944
+    $s = spip_mysql_query("SHOW CREATE TABLE `$nom_table`", $serveur, $requeter);
945
+    if (!$s) {
946
+        return '';
947
+    }
948
+    if (!$requeter) {
949
+        return $s;
950
+    }
951
+
952
+    [, $a] = mysqli_fetch_array($s, MYSQLI_NUM);
953
+    if (preg_match(_MYSQL_RE_SHOW_TABLE, $a, $r)) {
954
+        $desc = $r[1];
955
+        // extraction d'une KEY éventuelle en prenant garde de ne pas
956
+        // relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
957
+        if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
958
+            $namedkeys = $r[2];
959
+            $desc = $r[1];
960
+        } else {
961
+            $namedkeys = '';
962
+        }
963
+
964
+        $fields = [];
965
+        foreach (preg_split('/,\s*`/', $desc) as $v) {
966
+            preg_match('/^\s*`?([^`]*)`\s*(.*)/', $v, $r);
967
+            $fields[strtolower($r[1])] = $r[2];
968
+        }
969
+        $keys = [];
970
+
971
+        foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
972
+            if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
973
+                $k = str_replace('`', '', trim($r[1]));
974
+                $t = strtolower(str_replace('`', '', $r[2]));
975
+                if ($k && !isset($keys[$k])) {
976
+                    $keys[$k] = $t;
977
+                } else {
978
+                    $keys[] = $t;
979
+                }
980
+            }
981
+        }
982
+        spip_mysql_free($s);
983
+
984
+        return ['field' => $fields, 'key' => $keys];
985
+    }
986
+
987
+    $res = spip_mysql_query("SHOW COLUMNS FROM `$nom_table`", $serveur);
988
+    if ($res) {
989
+        $nfields = [];
990
+        $nkeys = [];
991
+        while ($val = spip_mysql_fetch($res)) {
992
+            $nfields[$val['Field']] = $val['Type'];
993
+            if ($val['Null'] == 'NO') {
994
+                $nfields[$val['Field']] .= ' NOT NULL';
995
+            }
996
+            if ($val['Default'] === '0' || $val['Default']) {
997
+                if (preg_match('/[A-Z_]/', $val['Default'])) {
998
+                    $nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
999
+                } else {
1000
+                    $nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
1001
+                }
1002
+            }
1003
+            if ($val['Extra']) {
1004
+                $nfields[$val['Field']] .= ' ' . $val['Extra'];
1005
+            }
1006
+            if ($val['Key'] == 'PRI') {
1007
+                $nkeys['PRIMARY KEY'] = $val['Field'];
1008
+            } else {
1009
+                if ($val['Key'] == 'MUL') {
1010
+                    $nkeys['KEY ' . $val['Field']] = $val['Field'];
1011
+                } else {
1012
+                    if ($val['Key'] == 'UNI') {
1013
+                        $nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
1014
+                    }
1015
+                }
1016
+            }
1017
+        }
1018
+        spip_mysql_free($res);
1019
+
1020
+        return ['field' => $nfields, 'key' => $nkeys];
1021
+    }
1022
+
1023
+    return '';
1024 1024
 }
1025 1025
 
1026 1026
 
@@ -1036,12 +1036,12 @@  discard block
 block discarded – undo
1036 1036
  * @return array           Ligne de résultat
1037 1037
  */
1038 1038
 function spip_mysql_fetch($r, $t = '', $serveur = '', $requeter = true) {
1039
-	if (!$t) {
1040
-		$t = \MYSQLI_ASSOC;
1041
-	}
1042
-	if ($r) {
1043
-		return mysqli_fetch_array($r, $t);
1044
-	}
1039
+    if (!$t) {
1040
+        $t = \MYSQLI_ASSOC;
1041
+    }
1042
+    if ($r) {
1043
+        return mysqli_fetch_array($r, $t);
1044
+    }
1045 1045
 }
1046 1046
 
1047 1047
 /**
@@ -1054,9 +1054,9 @@  discard block
 block discarded – undo
1054 1054
  * @return bool True si déplacement réussi, false sinon.
1055 1055
  **/
1056 1056
 function spip_mysql_seek($r, $row_number, $serveur = '', $requeter = true) {
1057
-	if ($r and mysqli_num_rows($r)) {
1058
-		return mysqli_data_seek($r, $row_number);
1059
-	}
1057
+    if ($r and mysqli_num_rows($r)) {
1058
+        return mysqli_data_seek($r, $row_number);
1059
+    }
1060 1060
 }
1061 1061
 
1062 1062
 
@@ -1074,26 +1074,26 @@  discard block
 block discarded – undo
1074 1074
  *     - int Nombre de lignes (0 si la requête n'a pas réussie)
1075 1075
  **/
1076 1076
 function spip_mysql_countsel(
1077
-	$from = [],
1078
-	$where = [],
1079
-	$groupby = '',
1080
-	$having = [],
1081
-	$serveur = '',
1082
-	$requeter = true
1077
+    $from = [],
1078
+    $where = [],
1079
+    $groupby = '',
1080
+    $having = [],
1081
+    $serveur = '',
1082
+    $requeter = true
1083 1083
 ) {
1084
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1085
-
1086
-	$r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1087
-	if (!$requeter) {
1088
-		return $r;
1089
-	}
1090
-	if (!$r instanceof mysqli_result) {
1091
-		return 0;
1092
-	}
1093
-	[$c] = mysqli_fetch_array($r, MYSQLI_NUM);
1094
-	mysqli_free_result($r);
1095
-
1096
-	return $c;
1084
+    $c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1085
+
1086
+    $r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1087
+    if (!$requeter) {
1088
+        return $r;
1089
+    }
1090
+    if (!$r instanceof mysqli_result) {
1091
+        return 0;
1092
+    }
1093
+    [$c] = mysqli_fetch_array($r, MYSQLI_NUM);
1094
+    mysqli_free_result($r);
1095
+
1096
+    return $c;
1097 1097
 }
1098 1098
 
1099 1099
 
@@ -1116,16 +1116,16 @@  discard block
 block discarded – undo
1116 1116
  *     Erreur eventuelle
1117 1117
  **/
1118 1118
 function spip_mysql_error($query = '', $serveur = '', $requeter = true) {
1119
-	$link = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]['link'];
1120
-	$s = mysqli_error($link);
1121
-	if ($s) {
1122
-		$trace = debug_backtrace();
1123
-		if ($trace[0]['function'] != 'spip_mysql_error') {
1124
-			spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1125
-		}
1126
-	}
1127
-
1128
-	return $s;
1119
+    $link = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]['link'];
1120
+    $s = mysqli_error($link);
1121
+    if ($s) {
1122
+        $trace = debug_backtrace();
1123
+        if ($trace[0]['function'] != 'spip_mysql_error') {
1124
+            spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1125
+        }
1126
+    }
1127
+
1128
+    return $s;
1129 1129
 }
1130 1130
 
1131 1131
 
@@ -1140,18 +1140,18 @@  discard block
 block discarded – undo
1140 1140
  *     0, pas d'erreur. Autre, numéro de l'erreur.
1141 1141
  **/
1142 1142
 function spip_mysql_errno($serveur = '', $requeter = true) {
1143
-	$link = $GLOBALS['connexions'][$serveur ?: 0]['link'];
1144
-	$s = mysqli_errno($link);
1145
-	// 2006 MySQL server has gone away
1146
-	// 2013 Lost connection to MySQL server during query
1147
-	if (in_array($s, [2006, 2013])) {
1148
-		define('spip_interdire_cache', true);
1149
-	}
1150
-	if ($s) {
1151
-		spip_log("Erreur mysql $s", _LOG_ERREUR);
1152
-	}
1153
-
1154
-	return $s;
1143
+    $link = $GLOBALS['connexions'][$serveur ?: 0]['link'];
1144
+    $s = mysqli_errno($link);
1145
+    // 2006 MySQL server has gone away
1146
+    // 2013 Lost connection to MySQL server during query
1147
+    if (in_array($s, [2006, 2013])) {
1148
+        define('spip_interdire_cache', true);
1149
+    }
1150
+    if ($s) {
1151
+        spip_log("Erreur mysql $s", _LOG_ERREUR);
1152
+    }
1153
+
1154
+    return $s;
1155 1155
 }
1156 1156
 
1157 1157
 
@@ -1165,9 +1165,9 @@  discard block
 block discarded – undo
1165 1165
  * @return int               Nombre de lignes
1166 1166
  */
1167 1167
 function spip_mysql_count($r, $serveur = '', $requeter = true) {
1168
-	if ($r) {
1169
-		return mysqli_num_rows($r);
1170
-	}
1168
+    if ($r) {
1169
+        return mysqli_num_rows($r);
1170
+    }
1171 1171
 }
1172 1172
 
1173 1173
 
@@ -1183,7 +1183,7 @@  discard block
 block discarded – undo
1183 1183
  * @return bool              True si réussi
1184 1184
  */
1185 1185
 function spip_mysql_free($r, $serveur = '', $requeter = true) {
1186
-	return (($r instanceof mysqli_result) ? mysqli_free_result($r) : false);
1186
+    return (($r instanceof mysqli_result) ? mysqli_free_result($r) : false);
1187 1187
 }
1188 1188
 
1189 1189
 
@@ -1211,59 +1211,59 @@  discard block
 block discarded – undo
1211 1211
  **/
1212 1212
 function spip_mysql_insert($table, $champs, $valeurs, $desc = [], $serveur = '', $requeter = true) {
1213 1213
 
1214
-	$e = null;
1215
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1216
-	$link = $connexion['link'];
1217
-	$table = prefixer_table_spip($table, $connexion['prefixe']);
1218
-
1219
-	// remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
1220
-	if (
1221
-		defined('_MYSQL_NOPLANES')
1222
-		and _MYSQL_NOPLANES
1223
-		and !empty($GLOBALS['meta']['charset_sql_connexion'])
1224
-		and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
1225
-	) {
1226
-		include_spip('inc/charsets');
1227
-		$valeurs = utf8_noplanes($valeurs);
1228
-	}
1229
-
1230
-	$query = "INSERT INTO $table $champs VALUES $valeurs";
1231
-	if (!$requeter) {
1232
-		return $query;
1233
-	}
1234
-
1235
-	if (isset($_GET['var_profile'])) {
1236
-		include_spip('public/tracer');
1237
-		$t = trace_query_start();
1238
-		$e = '';
1239
-	} else {
1240
-		$t = 0;
1241
-	}
1242
-
1243
-	$connexion['last'] = $query;
1244
-	#spip_log($query, 'mysql.'._LOG_DEBUG);
1245
-	$r = false;
1246
-	$insert = false;
1247
-	try {
1248
-		$insert = mysqli_query($link, $query);
1249
-	} catch (\mysqli_sql_exception $e) {
1250
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
1251
-		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
1252
-		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
1253
-	}
1254
-	if ($insert) {
1255
-		$r = mysqli_insert_id($link);
1256
-	} else {
1257
-		// Log de l'erreur eventuelle
1258
-		if ($e = spip_mysql_errno($serveur)) {
1259
-			// et du fautif
1260
-			$e .= spip_mysql_error($query, $serveur);
1261
-		}
1262
-	}
1263
-
1264
-	return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
1265
-
1266
-	// return $r ? $r : (($r===0) ? -1 : 0); pb avec le multi-base.
1214
+    $e = null;
1215
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1216
+    $link = $connexion['link'];
1217
+    $table = prefixer_table_spip($table, $connexion['prefixe']);
1218
+
1219
+    // remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
1220
+    if (
1221
+        defined('_MYSQL_NOPLANES')
1222
+        and _MYSQL_NOPLANES
1223
+        and !empty($GLOBALS['meta']['charset_sql_connexion'])
1224
+        and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
1225
+    ) {
1226
+        include_spip('inc/charsets');
1227
+        $valeurs = utf8_noplanes($valeurs);
1228
+    }
1229
+
1230
+    $query = "INSERT INTO $table $champs VALUES $valeurs";
1231
+    if (!$requeter) {
1232
+        return $query;
1233
+    }
1234
+
1235
+    if (isset($_GET['var_profile'])) {
1236
+        include_spip('public/tracer');
1237
+        $t = trace_query_start();
1238
+        $e = '';
1239
+    } else {
1240
+        $t = 0;
1241
+    }
1242
+
1243
+    $connexion['last'] = $query;
1244
+    #spip_log($query, 'mysql.'._LOG_DEBUG);
1245
+    $r = false;
1246
+    $insert = false;
1247
+    try {
1248
+        $insert = mysqli_query($link, $query);
1249
+    } catch (\mysqli_sql_exception $e) {
1250
+        spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
1251
+        // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
1252
+        // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
1253
+    }
1254
+    if ($insert) {
1255
+        $r = mysqli_insert_id($link);
1256
+    } else {
1257
+        // Log de l'erreur eventuelle
1258
+        if ($e = spip_mysql_errno($serveur)) {
1259
+            // et du fautif
1260
+            $e .= spip_mysql_error($query, $serveur);
1261
+        }
1262
+    }
1263
+
1264
+    return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
1265
+
1266
+    // return $r ? $r : (($r===0) ? -1 : 0); pb avec le multi-base.
1267 1267
 }
1268 1268
 
1269 1269
 /**
@@ -1288,26 +1288,26 @@  discard block
 block discarded – undo
1288 1288
  **/
1289 1289
 function spip_mysql_insertq($table, $couples = [], $desc = [], $serveur = '', $requeter = true) {
1290 1290
 
1291
-	if (!$desc) {
1292
-		$desc = description_table($table, $serveur);
1293
-	}
1294
-	if (!$desc) {
1295
-		$couples = [];
1296
-	}
1297
-	$fields = $desc['field'] ?? [];
1298
-
1299
-	foreach ($couples as $champ => $val) {
1300
-		$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1301
-	}
1302
-
1303
-	return spip_mysql_insert(
1304
-		$table,
1305
-		'(' . join(',', array_keys($couples)) . ')',
1306
-		'(' . join(',', $couples) . ')',
1307
-		$desc,
1308
-		$serveur,
1309
-		$requeter
1310
-	);
1291
+    if (!$desc) {
1292
+        $desc = description_table($table, $serveur);
1293
+    }
1294
+    if (!$desc) {
1295
+        $couples = [];
1296
+    }
1297
+    $fields = $desc['field'] ?? [];
1298
+
1299
+    foreach ($couples as $champ => $val) {
1300
+        $couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1301
+    }
1302
+
1303
+    return spip_mysql_insert(
1304
+        $table,
1305
+        '(' . join(',', array_keys($couples)) . ')',
1306
+        '(' . join(',', $couples) . ')',
1307
+        $desc,
1308
+        $serveur,
1309
+        $requeter
1310
+    );
1311 1311
 }
1312 1312
 
1313 1313
 
@@ -1332,34 +1332,34 @@  discard block
 block discarded – undo
1332 1332
  **/
1333 1333
 function spip_mysql_insertq_multi($table, $tab_couples = [], $desc = [], $serveur = '', $requeter = true) {
1334 1334
 
1335
-	if (!$desc) {
1336
-		$desc = description_table($table, $serveur);
1337
-	}
1338
-	if (!$desc) {
1339
-		$tab_couples = [];
1340
-	}
1341
-	$fields = $desc['field'] ?? [];
1342
-
1343
-	$cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1344
-	$valeurs = [];
1345
-	$r = false;
1346
-
1347
-	// Quoter et Inserer par groupes de 100 max pour eviter un debordement de pile
1348
-	foreach ($tab_couples as $couples) {
1349
-		foreach ($couples as $champ => $val) {
1350
-			$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1351
-		}
1352
-		$valeurs[] = '(' . join(',', $couples) . ')';
1353
-		if (count($valeurs) >= 100) {
1354
-			$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1355
-			$valeurs = [];
1356
-		}
1357
-	}
1358
-	if (count($valeurs)) {
1359
-		$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1360
-	}
1361
-
1362
-	return $r; // dans le cas d'une table auto_increment, le dernier insert_id
1335
+    if (!$desc) {
1336
+        $desc = description_table($table, $serveur);
1337
+    }
1338
+    if (!$desc) {
1339
+        $tab_couples = [];
1340
+    }
1341
+    $fields = $desc['field'] ?? [];
1342
+
1343
+    $cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1344
+    $valeurs = [];
1345
+    $r = false;
1346
+
1347
+    // Quoter et Inserer par groupes de 100 max pour eviter un debordement de pile
1348
+    foreach ($tab_couples as $couples) {
1349
+        foreach ($couples as $champ => $val) {
1350
+            $couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1351
+        }
1352
+        $valeurs[] = '(' . join(',', $couples) . ')';
1353
+        if (count($valeurs) >= 100) {
1354
+            $r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1355
+            $valeurs = [];
1356
+        }
1357
+    }
1358
+    if (count($valeurs)) {
1359
+        $r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1360
+    }
1361
+
1362
+    return $r; // dans le cas d'une table auto_increment, le dernier insert_id
1363 1363
 }
1364 1364
 
1365 1365
 /**
@@ -1384,19 +1384,19 @@  discard block
 block discarded – undo
1384 1384
  *     - array Tableau décrivant la requête et son temps d'exécution si var_profile est actif
1385 1385
  */
1386 1386
 function spip_mysql_update($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1387
-	$set = [];
1388
-	foreach ($champs as $champ => $val) {
1389
-		$set[] = $champ . "=$val";
1390
-	}
1391
-	if (!empty($set)) {
1392
-		return spip_mysql_query(
1393
-			calculer_mysql_expression('UPDATE', $table, ',')
1394
-			. calculer_mysql_expression('SET', $set, ',')
1395
-			. calculer_mysql_expression('WHERE', $where),
1396
-			$serveur,
1397
-			$requeter
1398
-		);
1399
-	}
1387
+    $set = [];
1388
+    foreach ($champs as $champ => $val) {
1389
+        $set[] = $champ . "=$val";
1390
+    }
1391
+    if (!empty($set)) {
1392
+        return spip_mysql_query(
1393
+            calculer_mysql_expression('UPDATE', $table, ',')
1394
+            . calculer_mysql_expression('SET', $set, ',')
1395
+            . calculer_mysql_expression('WHERE', $where),
1396
+            $serveur,
1397
+            $requeter
1398
+        );
1399
+    }
1400 1400
 }
1401 1401
 
1402 1402
 /**
@@ -1429,29 +1429,29 @@  discard block
 block discarded – undo
1429 1429
  */
1430 1430
 function spip_mysql_updateq($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1431 1431
 
1432
-	if (!$champs) {
1433
-		return;
1434
-	}
1435
-	if (!$desc) {
1436
-		$desc = description_table($table, $serveur);
1437
-	}
1438
-	if (!$desc) {
1439
-		$champs = [];
1440
-	} else {
1441
-		$fields = $desc['field'];
1442
-	}
1443
-	$set = [];
1444
-	foreach ($champs as $champ => $val) {
1445
-		$set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1446
-	}
1447
-
1448
-	return spip_mysql_query(
1449
-		calculer_mysql_expression('UPDATE', $table, ',')
1450
-		. calculer_mysql_expression('SET', $set, ',')
1451
-		. calculer_mysql_expression('WHERE', $where),
1452
-		$serveur,
1453
-		$requeter
1454
-	);
1432
+    if (!$champs) {
1433
+        return;
1434
+    }
1435
+    if (!$desc) {
1436
+        $desc = description_table($table, $serveur);
1437
+    }
1438
+    if (!$desc) {
1439
+        $champs = [];
1440
+    } else {
1441
+        $fields = $desc['field'];
1442
+    }
1443
+    $set = [];
1444
+    foreach ($champs as $champ => $val) {
1445
+        $set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1446
+    }
1447
+
1448
+    return spip_mysql_query(
1449
+        calculer_mysql_expression('UPDATE', $table, ',')
1450
+        . calculer_mysql_expression('SET', $set, ',')
1451
+        . calculer_mysql_expression('WHERE', $where),
1452
+        $serveur,
1453
+        $requeter
1454
+    );
1455 1455
 }
1456 1456
 
1457 1457
 /**
@@ -1467,22 +1467,22 @@  discard block
 block discarded – undo
1467 1467
  *     - False en cas d'erreur.
1468 1468
  **/
1469 1469
 function spip_mysql_delete($table, $where = '', $serveur = '', $requeter = true) {
1470
-	$res = spip_mysql_query(
1471
-		calculer_mysql_expression('DELETE FROM', $table, ',')
1472
-		. calculer_mysql_expression('WHERE', $where),
1473
-		$serveur,
1474
-		$requeter
1475
-	);
1476
-	if (!$requeter) {
1477
-		return $res;
1478
-	}
1479
-	if ($res) {
1480
-		$link = _mysql_link($serveur);
1481
-
1482
-		return mysqli_affected_rows($link);
1483
-	} else {
1484
-		return false;
1485
-	}
1470
+    $res = spip_mysql_query(
1471
+        calculer_mysql_expression('DELETE FROM', $table, ',')
1472
+        . calculer_mysql_expression('WHERE', $where),
1473
+        $serveur,
1474
+        $requeter
1475
+    );
1476
+    if (!$requeter) {
1477
+        return $res;
1478
+    }
1479
+    if ($res) {
1480
+        $link = _mysql_link($serveur);
1481
+
1482
+        return mysqli_affected_rows($link);
1483
+    } else {
1484
+        return false;
1485
+    }
1486 1486
 }
1487 1487
 
1488 1488
 
@@ -1511,10 +1511,10 @@  discard block
 block discarded – undo
1511 1511
  *     - False en cas d'erreur.
1512 1512
  **/
1513 1513
 function spip_mysql_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) {
1514
-	return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1515
-		',',
1516
-		array_map('_q', $couples)
1517
-	) . ')', $serveur, $requeter);
1514
+    return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1515
+        ',',
1516
+        array_map('_q', $couples)
1517
+    ) . ')', $serveur, $requeter);
1518 1518
 }
1519 1519
 
1520 1520
 
@@ -1543,14 +1543,14 @@  discard block
 block discarded – undo
1543 1543
  *     - False en cas d'erreur.
1544 1544
  **/
1545 1545
 function spip_mysql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) {
1546
-	$cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1547
-	$valeurs = [];
1548
-	foreach ($tab_couples as $couples) {
1549
-		$valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1550
-	}
1551
-	$valeurs = implode(', ', $valeurs);
1552
-
1553
-	return spip_mysql_query("REPLACE $table $cles VALUES $valeurs", $serveur, $requeter);
1546
+    $cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1547
+    $valeurs = [];
1548
+    foreach ($tab_couples as $couples) {
1549
+        $valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1550
+    }
1551
+    $valeurs = implode(', ', $valeurs);
1552
+
1553
+    return spip_mysql_query("REPLACE $table $cles VALUES $valeurs", $serveur, $requeter);
1554 1554
 }
1555 1555
 
1556 1556
 
@@ -1565,32 +1565,32 @@  discard block
 block discarded – undo
1565 1565
  * @return string       Texte de sélection pour la requête
1566 1566
  */
1567 1567
 function spip_mysql_multi($objet, $lang) {
1568
-	$lengthlang = strlen("[$lang]");
1569
-	$posmulti = 'INSTR(' . $objet . ", '<multi>')";
1570
-	$posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1571
-	$debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1572
-	$finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1573
-	$chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1574
-	$poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1575
-	$poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1576
-	$chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1577
-	$posfinlang = 'INSTR(' . $chainelang . ", '[')";
1578
-	$chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1579
-	//$chainelang = "LEFT($chainelang,$posfinlang-1)";
1580
-	$retour = "(TRIM(IF($posmulti = 0 , " .
1581
-		'     TRIM(' . $objet . '), ' .
1582
-		'     CONCAT( ' .
1583
-		"          $debutchaine, " .
1584
-		'          IF( ' .
1585
-		"               $poslang = 0, " .
1586
-		"                     $chainemulti, " .
1587
-		"               $chainelang" .
1588
-		'          ), ' .
1589
-		"          $finchaine" .
1590
-		'     ) ' .
1591
-		'))) AS multi';
1592
-
1593
-	return $retour;
1568
+    $lengthlang = strlen("[$lang]");
1569
+    $posmulti = 'INSTR(' . $objet . ", '<multi>')";
1570
+    $posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1571
+    $debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1572
+    $finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1573
+    $chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1574
+    $poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1575
+    $poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1576
+    $chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1577
+    $posfinlang = 'INSTR(' . $chainelang . ", '[')";
1578
+    $chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1579
+    //$chainelang = "LEFT($chainelang,$posfinlang-1)";
1580
+    $retour = "(TRIM(IF($posmulti = 0 , " .
1581
+        '     TRIM(' . $objet . '), ' .
1582
+        '     CONCAT( ' .
1583
+        "          $debutchaine, " .
1584
+        '          IF( ' .
1585
+        "               $poslang = 0, " .
1586
+        "                     $chainemulti, " .
1587
+        "               $chainelang" .
1588
+        '          ), ' .
1589
+        "          $finchaine" .
1590
+        '     ) ' .
1591
+        '))) AS multi';
1592
+
1593
+    return $retour;
1594 1594
 }
1595 1595
 
1596 1596
 /**
@@ -1604,7 +1604,7 @@  discard block
 block discarded – undo
1604 1604
  *     Valeur hexadécimale pour MySQL
1605 1605
  **/
1606 1606
 function spip_mysql_hex($v) {
1607
-	return '0x' . $v;
1607
+    return '0x' . $v;
1608 1608
 }
1609 1609
 
1610 1610
 /**
@@ -1620,15 +1620,15 @@  discard block
 block discarded – undo
1620 1620
  *    Donnée prête à être utilisée par le gestionnaire SQL
1621 1621
  */
1622 1622
 function spip_mysql_quote($v, $type = '') {
1623
-	if (!is_array($v)) {
1624
-		return spip_mysql_cite($v, $type);
1625
-	}
1626
-
1627
-	// si c'est un tableau, le parcourir en propageant le type
1628
-	foreach ($v as $k => $r) {
1629
-		$v[$k] = spip_mysql_quote($r, $type);
1630
-	}
1631
-	return implode(',', $v);
1623
+    if (!is_array($v)) {
1624
+        return spip_mysql_cite($v, $type);
1625
+    }
1626
+
1627
+    // si c'est un tableau, le parcourir en propageant le type
1628
+    foreach ($v as $k => $r) {
1629
+        $v[$k] = spip_mysql_quote($r, $type);
1630
+    }
1631
+    return implode(',', $v);
1632 1632
 }
1633 1633
 
1634 1634
 /**
@@ -1644,18 +1644,18 @@  discard block
 block discarded – undo
1644 1644
  *     Expression SQL
1645 1645
  **/
1646 1646
 function spip_mysql_date_proche($champ, $interval, $unite) {
1647
-	$use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1648
-	return '('
1649
-	. $champ
1650
-	. (($interval <= 0) ? '>' : '<')
1651
-	. (($interval <= 0) ? 'DATE_SUB' : 'DATE_ADD')
1652
-	. '('
1653
-	. ($use_now ? 'NOW()' : sql_quote(date('Y-m-d H:i:s')))
1654
-	. ', INTERVAL '
1655
-	. (($interval > 0) ? $interval : (0 - $interval))
1656
-	. ' '
1657
-	. $unite
1658
-	. '))';
1647
+    $use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1648
+    return '('
1649
+    . $champ
1650
+    . (($interval <= 0) ? '>' : '<')
1651
+    . (($interval <= 0) ? 'DATE_SUB' : 'DATE_ADD')
1652
+    . '('
1653
+    . ($use_now ? 'NOW()' : sql_quote(date('Y-m-d H:i:s')))
1654
+    . ', INTERVAL '
1655
+    . (($interval > 0) ? $interval : (0 - $interval))
1656
+    . ' '
1657
+    . $unite
1658
+    . '))';
1659 1659
 }
1660 1660
 
1661 1661
 
@@ -1679,7 +1679,7 @@  discard block
 block discarded – undo
1679 1679
  *     Expression de requête SQL
1680 1680
  **/
1681 1681
 function spip_mysql_in($val, $valeurs, $not = '', $serveur = '', $requeter = true) {
1682
-	return "($val $not IN ($valeurs))";
1682
+    return "($val $not IN ($valeurs))";
1683 1683
 }
1684 1684
 
1685 1685
 
@@ -1691,39 +1691,39 @@  discard block
 block discarded – undo
1691 1691
  * @return string|number     Texte ou nombre échappé
1692 1692
  */
1693 1693
 function spip_mysql_cite($v, $type) {
1694
-	if (!$type) {
1695
-		if (is_bool($v)) {
1696
-			return strval(intval($v));
1697
-		} elseif (is_numeric($v)) {
1698
-			return strval($v);
1699
-		} elseif ($v === null) {
1700
-			return "''";
1701
-		}
1702
-		return "'" . addslashes($v) . "'";
1703
-	}
1704
-
1705
-	if ($v === null) {
1706
-		if (stripos($type, 'NOT NULL') === false) {
1707
-			// null php se traduit en NULL SQL
1708
-			return 'NULL';
1709
-		} else {
1710
-			return "''";
1711
-		}
1712
-	} elseif (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
1713
-		return $v;
1714
-	} elseif (sql_test_int($type)) {
1715
-		if (
1716
-			is_numeric($v)
1717
-			or ($v and ctype_xdigit(substr($v, 2)) and $v[0] === '0' and $v[1] === 'x')
1718
-		) {
1719
-			return $v;
1720
-		} else {
1721
-			// si pas numerique, forcer le intval
1722
-			return intval($v);
1723
-		}
1724
-	}
1725
-
1726
-	return ("'" . addslashes($v) . "'");
1694
+    if (!$type) {
1695
+        if (is_bool($v)) {
1696
+            return strval(intval($v));
1697
+        } elseif (is_numeric($v)) {
1698
+            return strval($v);
1699
+        } elseif ($v === null) {
1700
+            return "''";
1701
+        }
1702
+        return "'" . addslashes($v) . "'";
1703
+    }
1704
+
1705
+    if ($v === null) {
1706
+        if (stripos($type, 'NOT NULL') === false) {
1707
+            // null php se traduit en NULL SQL
1708
+            return 'NULL';
1709
+        } else {
1710
+            return "''";
1711
+        }
1712
+    } elseif (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
1713
+        return $v;
1714
+    } elseif (sql_test_int($type)) {
1715
+        if (
1716
+            is_numeric($v)
1717
+            or ($v and ctype_xdigit(substr($v, 2)) and $v[0] === '0' and $v[1] === 'x')
1718
+        ) {
1719
+            return $v;
1720
+        } else {
1721
+            // si pas numerique, forcer le intval
1722
+            return intval($v);
1723
+        }
1724
+    }
1725
+
1726
+    return ("'" . addslashes($v) . "'");
1727 1727
 }
1728 1728
 
1729 1729
 /**
@@ -1733,7 +1733,7 @@  discard block
 block discarded – undo
1733 1733
  *     True si on a les fonctions, false sinon
1734 1734
  */
1735 1735
 function spip_versions_mysql() {
1736
-	return function_exists('mysqli_query');
1736
+    return function_exists('mysqli_query');
1737 1737
 }
1738 1738
 
1739 1739
 
@@ -1746,20 +1746,20 @@  discard block
 block discarded – undo
1746 1746
  *     - chaîne : code compilé pour le faire désactiver par SPIP sinon
1747 1747
  */
1748 1748
 function test_rappel_nom_base_mysql($server_db) {
1749
-	$GLOBALS['mysql_rappel_nom_base'] = true;
1750
-	sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1751
-	$ok = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')", $server_db);
1749
+    $GLOBALS['mysql_rappel_nom_base'] = true;
1750
+    sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1751
+    $ok = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')", $server_db);
1752 1752
 
1753
-	if ($ok) {
1754
-		sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1753
+    if ($ok) {
1754
+        sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1755 1755
 
1756
-		return '';
1757
-	} else {
1758
-		$GLOBALS['mysql_rappel_nom_base'] = false;
1756
+        return '';
1757
+    } else {
1758
+        $GLOBALS['mysql_rappel_nom_base'] = false;
1759 1759
 
1760
-		return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1761
-		"/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1762
-	}
1760
+        return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1761
+        "/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1762
+    }
1763 1763
 }
1764 1764
 
1765 1765
 /**
@@ -1773,13 +1773,13 @@  discard block
 block discarded – undo
1773 1773
  *     - chaîne : code compilé pour l'indiquer le résultat du test à SPIP
1774 1774
  */
1775 1775
 function test_sql_mode_mysql($server_db) {
1776
-	$res = sql_select('version() as v', '', '', '', '', '', '', $server_db);
1777
-	$row = sql_fetch($res, $server_db);
1778
-	if (version_compare($row['v'], '5.0.0', '>=')) {
1779
-		defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE', true);
1776
+    $res = sql_select('version() as v', '', '', '', '', '', '', $server_db);
1777
+    $row = sql_fetch($res, $server_db);
1778
+    if (version_compare($row['v'], '5.0.0', '>=')) {
1779
+        defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE', true);
1780 1780
 
1781
-		return "defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);\n";
1782
-	}
1781
+        return "defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);\n";
1782
+    }
1783 1783
 
1784
-	return '';
1784
+    return '';
1785 1785
 }
Please login to merge, or discard this patch.
Spacing   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -62,12 +62,12 @@  discard block
 block discarded – undo
62 62
 			$link = @mysqli_connect($host, $login, $pass);
63 63
 		}
64 64
 	} catch (\mysqli_sql_exception $e) {
65
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
65
+		spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
66 66
 		$link = false;
67 67
 	}
68 68
 
69 69
 	if (!$link) {
70
-		spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
70
+		spip_log('Echec mysqli_connect. Erreur : '.mysqli_connect_error(), 'mysql.'._LOG_HS);
71 71
 
72 72
 		return false;
73 73
 	}
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
 	}
87 87
 
88 88
 	spip_log(
89
-		"Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
89
+		"Connexion MySQLi vers $host, base $db, prefixe $prefixe ".($ok ? 'operationnelle' : 'impossible'),
90 90
 		_LOG_DEBUG
91 91
 	);
92 92
 
@@ -177,9 +177,9 @@  discard block
 block discarded – undo
177 177
  */
178 178
 function spip_mysql_set_charset($charset, $serveur = '', $requeter = true) {
179 179
 	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
180
-	spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
180
+	spip_log('changement de charset sql : '.'SET NAMES '._q($charset), _LOG_DEBUG);
181 181
 
182
-	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
182
+	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES '._q($charset));
183 183
 }
184 184
 
185 185
 
@@ -194,7 +194,7 @@  discard block
 block discarded – undo
194 194
 function spip_mysql_get_charset($charset = [], $serveur = '', $requeter = true) {
195 195
 	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
196 196
 	$connexion['last'] = $c = 'SHOW CHARACTER SET'
197
-		. (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
197
+		. (!$charset ? '' : (' LIKE '._q($charset['charset'])));
198 198
 
199 199
 	return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
200 200
 }
@@ -238,21 +238,21 @@  discard block
 block discarded – undo
238 238
 	$debug = '';
239 239
 	if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
240 240
 		if (isset($GLOBALS['debug']['aucasou'])) {
241
-			[, $id, , $infos] = $GLOBALS['debug']['aucasou'];
242
-			$debug .= "BOUCLE$id @ " . ($infos[0] ?? '') . ' | ';
241
+			[, $id,, $infos] = $GLOBALS['debug']['aucasou'];
242
+			$debug .= "BOUCLE$id @ ".($infos[0] ?? '').' | ';
243 243
 		}
244 244
 		if (isset($_SERVER['REQUEST_URI'])) {
245 245
 			$debug .= $_SERVER['REQUEST_URI'];
246 246
 		}
247 247
 		if (!empty($GLOBALS['ip'])) {
248
-			$debug .= ' + ' . $GLOBALS['ip'];
248
+			$debug .= ' + '.$GLOBALS['ip'];
249 249
 		}
250
-		$debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
250
+		$debug = ' /* '.mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)).' */';
251 251
 	}
252 252
 	try {
253
-		$r = mysqli_query($link, $query . $debug);
253
+		$r = mysqli_query($link, $query.$debug);
254 254
 	} catch (\mysqli_sql_exception $e) {
255
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
255
+		spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
256 256
 		$r = false;
257 257
 		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
258 258
 		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
@@ -270,9 +270,9 @@  discard block
 block discarded – undo
270 270
 			$link = $connexion['link'];
271 271
 			//On retente au cas où
272 272
 			try {
273
-				$r = mysqli_query($link, $query . $debug);
273
+				$r = mysqli_query($link, $query.$debug);
274 274
 			} catch (\mysqli_sql_exception $e) {
275
-				spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
275
+				spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
276 276
 				$r = false;
277 277
 				// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
278 278
 				// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
@@ -305,7 +305,7 @@  discard block
 block discarded – undo
305 305
 	// d'utiliser ceux-ci, copie-colle de phpmyadmin
306 306
 	$query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
307 307
 
308
-	return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
308
+	return spip_mysql_query('ALTER '.$query, $serveur, $requeter); # i.e. que PG se debrouille
309 309
 }
310 310
 
311 311
 
@@ -318,7 +318,7 @@  discard block
 block discarded – undo
318 318
  * @return bool            Toujours true
319 319
  */
320 320
 function spip_mysql_optimize($table, $serveur = '', $requeter = true) {
321
-	spip_mysql_query('OPTIMIZE TABLE ' . $table);
321
+	spip_mysql_query('OPTIMIZE TABLE '.$table);
322 322
 
323 323
 	return true;
324 324
 }
@@ -341,7 +341,7 @@  discard block
 block discarded – undo
341 341
 	$link = $connexion['link'];
342 342
 	$db = $connexion['db'];
343 343
 
344
-	$query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
344
+	$query = 'EXPLAIN '._mysql_traite_query($query, $db, $prefixe);
345 345
 	$r = mysqli_query($link, $query);
346 346
 
347 347
 	return spip_mysql_fetch($r, null, $serveur);
@@ -392,7 +392,7 @@  discard block
 block discarded – undo
392 392
 		. calculer_mysql_expression('WHERE', $where)
393 393
 		. calculer_mysql_expression('GROUP BY', $groupby, ',')
394 394
 		. calculer_mysql_expression('HAVING', $having)
395
-		. ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
395
+		. ($orderby ? ("\nORDER BY ".spip_mysql_order($orderby)) : '')
396 396
 		. ($limit ? "\nLIMIT $limit" : '');
397 397
 
398 398
 	// renvoyer la requete inerte si demandee
@@ -482,12 +482,12 @@  discard block
 block discarded – undo
482 482
 	$exp = "\n$expression ";
483 483
 
484 484
 	if (!is_array($v)) {
485
-		return $exp . $v;
485
+		return $exp.$v;
486 486
 	} else {
487 487
 		if (strtoupper($join) === 'AND') {
488
-			return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
488
+			return $exp.join("\n\t$join ", array_map('calculer_mysql_where', $v));
489 489
 		} else {
490
-			return $exp . join($join, $v);
490
+			return $exp.join($join, $v);
491 491
 		}
492 492
 	}
493 493
 }
@@ -505,17 +505,17 @@  discard block
 block discarded – undo
505 505
 		if (substr($k, -1) == '@') {
506 506
 			// c'est une jointure qui se refere au from precedent
507 507
 			// pas de virgule
508
-			$res .= '  ' . $v;
508
+			$res .= '  '.$v;
509 509
 		} else {
510 510
 			if (!is_numeric($k)) {
511 511
 				$p = strpos($v, ' ');
512 512
 				if ($p) {
513
-					$v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
513
+					$v = substr($v, 0, $p)." AS `$k`".substr($v, $p);
514 514
 				} else {
515 515
 					$v .= " AS `$k`";
516 516
 				}
517 517
 			}
518
-			$res .= ', ' . $v;
518
+			$res .= ', '.$v;
519 519
 		}
520 520
 	}
521 521
 
@@ -545,13 +545,13 @@  discard block
 block discarded – undo
545 545
 function _mysql_traite_query($query, $db = '', $prefixe = '', $echappe_textes = true) {
546 546
 
547 547
 	if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
548
-		$pref = '`' . $db . '`.';
548
+		$pref = '`'.$db.'`.';
549 549
 	} else {
550 550
 		$pref = '';
551 551
 	}
552 552
 
553 553
 	if ($prefixe) {
554
-		$pref .= $prefixe . '_';
554
+		$pref .= $prefixe.'_';
555 555
 	}
556 556
 
557 557
 	if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
@@ -570,7 +570,7 @@  discard block
 block discarded – undo
570 570
 				$suite_echap = $suite;
571 571
 			}
572 572
 			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
573
-				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
573
+				$suite_echap = $r[1]._mysql_traite_query($r[2], $db, $prefixe, false);
574 574
 				if ($echappe_textes) {
575 575
 					$suite = query_reinjecte_textes($suite_echap, $textes);
576 576
 				}
@@ -580,7 +580,7 @@  discard block
 block discarded – undo
580 580
 			}
581 581
 		}
582 582
 	}
583
-	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
583
+	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1'.$pref, $query).$suite;
584 584
 
585 585
 	// en option, remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
586 586
 	// remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
@@ -616,7 +616,7 @@  discard block
 block discarded – undo
616 616
 	$link = _mysql_link($serveur);
617 617
 	$ok = mysqli_select_db($link, $db);
618 618
 	if (!$ok) {
619
-		spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
619
+		spip_log('Echec mysqli_selectdb. Erreur : '.mysqli_error($link), 'mysql.'._LOG_CRITIQUE);
620 620
 	}
621 621
 
622 622
 	return $ok;
@@ -706,10 +706,10 @@  discard block
 block discarded – undo
706 706
 
707 707
 	$character_set = '';
708 708
 	if (@$GLOBALS['meta']['charset_sql_base']) {
709
-		$character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
709
+		$character_set .= ' CHARACTER SET '.$GLOBALS['meta']['charset_sql_base'];
710 710
 	}
711 711
 	if (@$GLOBALS['meta']['charset_collation_sql_base']) {
712
-		$character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
712
+		$character_set .= ' COLLATE '.$GLOBALS['meta']['charset_collation_sql_base'];
713 713
 	}
714 714
 
715 715
 	foreach ($champs as $k => $v) {
@@ -719,7 +719,7 @@  discard block
 block discarded – undo
719 719
 				preg_match(',(char|text),i', $defs[1])
720 720
 				and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
721 721
 			) {
722
-				$v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
722
+				$v = $defs[1].$character_set.' '.substr($v, strlen($defs[1]));
723 723
 			}
724 724
 		}
725 725
 
@@ -731,8 +731,8 @@  discard block
 block discarded – undo
731 731
 		$s = ',';
732 732
 	}
733 733
 	$temporary = $temporary ? 'TEMPORARY' : '';
734
-	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
735
-		. ' ENGINE=' . _MYSQL_ENGINE
734
+	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query".($keys ? ",$keys" : '').')'
735
+		. ' ENGINE='._MYSQL_ENGINE
736 736
 		. ($character_set ? " DEFAULT $character_set" : '')
737 737
 		. "\n";
738 738
 
@@ -811,7 +811,7 @@  discard block
 block discarded – undo
811 811
 		return false;
812 812
 	}
813 813
 
814
-	$query = "CREATE VIEW $nom AS " . $query_select;
814
+	$query = "CREATE VIEW $nom AS ".$query_select;
815 815
 
816 816
 	return spip_mysql_query($query, $serveur, $requeter);
817 817
 }
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
  *     Ressource à utiliser avec sql_fetch()
870 870
  **/
871 871
 function spip_mysql_showbase($match, $serveur = '', $requeter = true) {
872
-	return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
872
+	return spip_mysql_query('SHOW TABLES LIKE '._q($match), $serveur, $requeter);
873 873
 }
874 874
 
875 875
 /**
@@ -885,7 +885,7 @@  discard block
 block discarded – undo
885 885
  *     - true si la requête a réussie, false sinon
886 886
  */
887 887
 function spip_mysql_repair($table, $serveur = '', $requeter = true) {
888
-	$table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true));
888
+	$table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = '._q($table), $serveur, true));
889 889
 	$engine = $table_status['Engine'];
890 890
 	if ($engine == 'InnoDB') {
891 891
 		if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) {
@@ -894,7 +894,7 @@  discard block
 block discarded – undo
894 894
 	} elseif ($engine == 'MyISAM') {
895 895
 		return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
896 896
 	} else {
897
-		spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG);
897
+		spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.'._LOG_DEBUG);
898 898
 	}
899 899
 }
900 900
 
@@ -913,7 +913,7 @@  discard block
 block discarded – undo
913 913
  *     - string : requete sql, si $requeter = true
914 914
  **/
915 915
 function spip_mysql_table_exists(string $table, $serveur = '', $requeter = true) {
916
-	$r = spip_mysql_query('SHOW TABLES LIKE ' . _q($table), $serveur, $requeter);
916
+	$r = spip_mysql_query('SHOW TABLES LIKE '._q($table), $serveur, $requeter);
917 917
 	if (!$requeter) {
918 918
 		return $r;
919 919
 	}
@@ -995,22 +995,22 @@  discard block
 block discarded – undo
995 995
 			}
996 996
 			if ($val['Default'] === '0' || $val['Default']) {
997 997
 				if (preg_match('/[A-Z_]/', $val['Default'])) {
998
-					$nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
998
+					$nfields[$val['Field']] .= ' DEFAULT '.$val['Default'];
999 999
 				} else {
1000
-					$nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
1000
+					$nfields[$val['Field']] .= " DEFAULT '".$val['Default']."'";
1001 1001
 				}
1002 1002
 			}
1003 1003
 			if ($val['Extra']) {
1004
-				$nfields[$val['Field']] .= ' ' . $val['Extra'];
1004
+				$nfields[$val['Field']] .= ' '.$val['Extra'];
1005 1005
 			}
1006 1006
 			if ($val['Key'] == 'PRI') {
1007 1007
 				$nkeys['PRIMARY KEY'] = $val['Field'];
1008 1008
 			} else {
1009 1009
 				if ($val['Key'] == 'MUL') {
1010
-					$nkeys['KEY ' . $val['Field']] = $val['Field'];
1010
+					$nkeys['KEY '.$val['Field']] = $val['Field'];
1011 1011
 				} else {
1012 1012
 					if ($val['Key'] == 'UNI') {
1013
-						$nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
1013
+						$nkeys['UNIQUE KEY '.$val['Field']] = $val['Field'];
1014 1014
 					}
1015 1015
 				}
1016 1016
 			}
@@ -1081,7 +1081,7 @@  discard block
 block discarded – undo
1081 1081
 	$serveur = '',
1082 1082
 	$requeter = true
1083 1083
 ) {
1084
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1084
+	$c = !$groupby ? '*' : ('DISTINCT '.(is_string($groupby) ? $groupby : join(',', $groupby)));
1085 1085
 
1086 1086
 	$r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1087 1087
 	if (!$requeter) {
@@ -1121,7 +1121,7 @@  discard block
 block discarded – undo
1121 1121
 	if ($s) {
1122 1122
 		$trace = debug_backtrace();
1123 1123
 		if ($trace[0]['function'] != 'spip_mysql_error') {
1124
-			spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1124
+			spip_log("$s - $query - ".sql_error_backtrace(), 'mysql.'._LOG_ERREUR);
1125 1125
 		}
1126 1126
 	}
1127 1127
 
@@ -1247,7 +1247,7 @@  discard block
 block discarded – undo
1247 1247
 	try {
1248 1248
 		$insert = mysqli_query($link, $query);
1249 1249
 	} catch (\mysqli_sql_exception $e) {
1250
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
1250
+		spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
1251 1251
 		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
1252 1252
 		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
1253 1253
 	}
@@ -1302,8 +1302,8 @@  discard block
 block discarded – undo
1302 1302
 
1303 1303
 	return spip_mysql_insert(
1304 1304
 		$table,
1305
-		'(' . join(',', array_keys($couples)) . ')',
1306
-		'(' . join(',', $couples) . ')',
1305
+		'('.join(',', array_keys($couples)).')',
1306
+		'('.join(',', $couples).')',
1307 1307
 		$desc,
1308 1308
 		$serveur,
1309 1309
 		$requeter
@@ -1340,7 +1340,7 @@  discard block
 block discarded – undo
1340 1340
 	}
1341 1341
 	$fields = $desc['field'] ?? [];
1342 1342
 
1343
-	$cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1343
+	$cles = '('.join(',', array_keys(reset($tab_couples))).')';
1344 1344
 	$valeurs = [];
1345 1345
 	$r = false;
1346 1346
 
@@ -1349,7 +1349,7 @@  discard block
 block discarded – undo
1349 1349
 		foreach ($couples as $champ => $val) {
1350 1350
 			$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1351 1351
 		}
1352
-		$valeurs[] = '(' . join(',', $couples) . ')';
1352
+		$valeurs[] = '('.join(',', $couples).')';
1353 1353
 		if (count($valeurs) >= 100) {
1354 1354
 			$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1355 1355
 			$valeurs = [];
@@ -1386,7 +1386,7 @@  discard block
 block discarded – undo
1386 1386
 function spip_mysql_update($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1387 1387
 	$set = [];
1388 1388
 	foreach ($champs as $champ => $val) {
1389
-		$set[] = $champ . "=$val";
1389
+		$set[] = $champ."=$val";
1390 1390
 	}
1391 1391
 	if (!empty($set)) {
1392 1392
 		return spip_mysql_query(
@@ -1442,7 +1442,7 @@  discard block
 block discarded – undo
1442 1442
 	}
1443 1443
 	$set = [];
1444 1444
 	foreach ($champs as $champ => $val) {
1445
-		$set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1445
+		$set[] = $champ.'='.spip_mysql_cite($val, @$fields[$champ]);
1446 1446
 	}
1447 1447
 
1448 1448
 	return spip_mysql_query(
@@ -1511,10 +1511,10 @@  discard block
 block discarded – undo
1511 1511
  *     - False en cas d'erreur.
1512 1512
  **/
1513 1513
 function spip_mysql_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) {
1514
-	return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1514
+	return spip_mysql_query("REPLACE $table (".join(',', array_keys($couples)).') VALUES ('.join(
1515 1515
 		',',
1516 1516
 		array_map('_q', $couples)
1517
-	) . ')', $serveur, $requeter);
1517
+	).')', $serveur, $requeter);
1518 1518
 }
1519 1519
 
1520 1520
 
@@ -1543,10 +1543,10 @@  discard block
 block discarded – undo
1543 1543
  *     - False en cas d'erreur.
1544 1544
  **/
1545 1545
 function spip_mysql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) {
1546
-	$cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1546
+	$cles = '('.join(',', array_keys($tab_couples[0])).')';
1547 1547
 	$valeurs = [];
1548 1548
 	foreach ($tab_couples as $couples) {
1549
-		$valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1549
+		$valeurs[] = '('.join(',', array_map('_q', $couples)).')';
1550 1550
 	}
1551 1551
 	$valeurs = implode(', ', $valeurs);
1552 1552
 
@@ -1566,28 +1566,28 @@  discard block
 block discarded – undo
1566 1566
  */
1567 1567
 function spip_mysql_multi($objet, $lang) {
1568 1568
 	$lengthlang = strlen("[$lang]");
1569
-	$posmulti = 'INSTR(' . $objet . ", '<multi>')";
1570
-	$posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1571
-	$debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1572
-	$finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1573
-	$chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1574
-	$poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1569
+	$posmulti = 'INSTR('.$objet.", '<multi>')";
1570
+	$posfinmulti = 'INSTR('.$objet.", '</multi>')";
1571
+	$debutchaine = 'LEFT('.$objet.", $posmulti-1)";
1572
+	$finchaine = 'RIGHT('.$objet.', CHAR_LENGTH('.$objet.") -(7+$posfinmulti))";
1573
+	$chainemulti = 'TRIM(SUBSTRING('.$objet.", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1574
+	$poslang = "INSTR($chainemulti,'[".$lang."]')";
1575 1575
 	$poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1576
-	$chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1577
-	$posfinlang = 'INSTR(' . $chainelang . ", '[')";
1576
+	$chainelang = 'TRIM(SUBSTRING('.$objet.", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1577
+	$posfinlang = 'INSTR('.$chainelang.", '[')";
1578 1578
 	$chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1579 1579
 	//$chainelang = "LEFT($chainelang,$posfinlang-1)";
1580
-	$retour = "(TRIM(IF($posmulti = 0 , " .
1581
-		'     TRIM(' . $objet . '), ' .
1582
-		'     CONCAT( ' .
1583
-		"          $debutchaine, " .
1584
-		'          IF( ' .
1585
-		"               $poslang = 0, " .
1586
-		"                     $chainemulti, " .
1587
-		"               $chainelang" .
1588
-		'          ), ' .
1589
-		"          $finchaine" .
1590
-		'     ) ' .
1580
+	$retour = "(TRIM(IF($posmulti = 0 , ".
1581
+		'     TRIM('.$objet.'), '.
1582
+		'     CONCAT( '.
1583
+		"          $debutchaine, ".
1584
+		'          IF( '.
1585
+		"               $poslang = 0, ".
1586
+		"                     $chainemulti, ".
1587
+		"               $chainelang".
1588
+		'          ), '.
1589
+		"          $finchaine".
1590
+		'     ) '.
1591 1591
 		'))) AS multi';
1592 1592
 
1593 1593
 	return $retour;
@@ -1604,7 +1604,7 @@  discard block
 block discarded – undo
1604 1604
  *     Valeur hexadécimale pour MySQL
1605 1605
  **/
1606 1606
 function spip_mysql_hex($v) {
1607
-	return '0x' . $v;
1607
+	return '0x'.$v;
1608 1608
 }
1609 1609
 
1610 1610
 /**
@@ -1644,7 +1644,7 @@  discard block
 block discarded – undo
1644 1644
  *     Expression SQL
1645 1645
  **/
1646 1646
 function spip_mysql_date_proche($champ, $interval, $unite) {
1647
-	$use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1647
+	$use_now = (($champ === 'maj' or strpos($champ, '.maj')) ? true : false);
1648 1648
 	return '('
1649 1649
 	. $champ
1650 1650
 	. (($interval <= 0) ? '>' : '<')
@@ -1699,7 +1699,7 @@  discard block
 block discarded – undo
1699 1699
 		} elseif ($v === null) {
1700 1700
 			return "''";
1701 1701
 		}
1702
-		return "'" . addslashes($v) . "'";
1702
+		return "'".addslashes($v)."'";
1703 1703
 	}
1704 1704
 
1705 1705
 	if ($v === null) {
@@ -1723,7 +1723,7 @@  discard block
 block discarded – undo
1723 1723
 		}
1724 1724
 	}
1725 1725
 
1726
-	return ("'" . addslashes($v) . "'");
1726
+	return ("'".addslashes($v)."'");
1727 1727
 }
1728 1728
 
1729 1729
 /**
@@ -1757,7 +1757,7 @@  discard block
 block discarded – undo
1757 1757
 	} else {
1758 1758
 		$GLOBALS['mysql_rappel_nom_base'] = false;
1759 1759
 
1760
-		return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1760
+		return "\$GLOBALS['mysql_rappel_nom_base'] = false; ".
1761 1761
 		"/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1762 1762
 	}
1763 1763
 }
Please login to merge, or discard this patch.
ecrire/base/repair.php 1 patch
Indentation   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  */
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -36,20 +36,20 @@  discard block
 block discarded – undo
36 36
  **/
37 37
 function base_repair_dist($titre = '', $reprise = '') {
38 38
 
39
-	$res = admin_repair_tables();
40
-	if (!$res) {
41
-		$res = "<div class='error'>" . _T('avis_erreur_mysql') . ' ' . sql_errno() . ': ' . sql_error() . "</div>\n";
42
-	} else {
43
-		include_spip('inc/rubriques');
44
-		calculer_rubriques();
45
-		propager_les_secteurs();
46
-	}
47
-	include_spip('inc/minipres');
48
-	$res .= pipeline('base_admin_repair', $res);
49
-	echo minipres(
50
-		_T('texte_tentative_recuperation'),
51
-		$res . generer_form_ecrire('accueil', '', '', _T('public:accueil_site'))
52
-	);
39
+    $res = admin_repair_tables();
40
+    if (!$res) {
41
+        $res = "<div class='error'>" . _T('avis_erreur_mysql') . ' ' . sql_errno() . ': ' . sql_error() . "</div>\n";
42
+    } else {
43
+        include_spip('inc/rubriques');
44
+        calculer_rubriques();
45
+        propager_les_secteurs();
46
+    }
47
+    include_spip('inc/minipres');
48
+    $res .= pipeline('base_admin_repair', $res);
49
+    echo minipres(
50
+        _T('texte_tentative_recuperation'),
51
+        $res . generer_form_ecrire('accueil', '', '', _T('public:accueil_site'))
52
+    );
53 53
 }
54 54
 
55 55
 /**
@@ -63,59 +63,59 @@  discard block
 block discarded – undo
63 63
  **/
64 64
 function admin_repair_tables() {
65 65
 
66
-	$repair = sql_serveur('repair', '', true);
66
+    $repair = sql_serveur('repair', '', true);
67 67
 
68
-	// recreer les tables manquantes eventuelles
69
-	include_spip('base/create');
70
-	creer_base();
71
-	$tables = sql_alltable();
68
+    // recreer les tables manquantes eventuelles
69
+    include_spip('base/create');
70
+    creer_base();
71
+    $tables = sql_alltable();
72 72
 
73
-	$res = '';
74
-	foreach ($tables as $tab) {
75
-		$class = '';
76
-		$m = "<strong>$tab</strong> ";
77
-		spip_log("Repare $tab", _LOG_INFO_IMPORTANTE);
78
-		// supprimer la meta avant de lancer la reparation
79
-		// car le repair peut etre long ; on ne veut pas boucler
80
-		effacer_meta('admin_repair');
81
-		if ($repair) {
82
-			$result_repair = sql_repair($tab);
83
-			if (!$result_repair) {
84
-				return false;
85
-			}
86
-		}
73
+    $res = '';
74
+    foreach ($tables as $tab) {
75
+        $class = '';
76
+        $m = "<strong>$tab</strong> ";
77
+        spip_log("Repare $tab", _LOG_INFO_IMPORTANTE);
78
+        // supprimer la meta avant de lancer la reparation
79
+        // car le repair peut etre long ; on ne veut pas boucler
80
+        effacer_meta('admin_repair');
81
+        if ($repair) {
82
+            $result_repair = sql_repair($tab);
83
+            if (!$result_repair) {
84
+                return false;
85
+            }
86
+        }
87 87
 
88
-		// essayer de maj la table (creation de champs manquants)
89
-		maj_tables($tab);
88
+        // essayer de maj la table (creation de champs manquants)
89
+        maj_tables($tab);
90 90
 
91
-		$count = sql_countsel($tab);
91
+        $count = sql_countsel($tab);
92 92
 
93
-		if ($count > 1) {
94
-			$m .= '(' . _T('texte_compte_elements', ['count' => $count]) . ")\n";
95
-		} else {
96
-			if ($count == 1) {
97
-				$m .= '(' . _T('texte_compte_element', ['count' => $count]) . ")\n";
98
-			} else {
99
-				$m .= '(' . _T('texte_vide') . ")\n";
100
-			}
101
-		}
93
+        if ($count > 1) {
94
+            $m .= '(' . _T('texte_compte_elements', ['count' => $count]) . ")\n";
95
+        } else {
96
+            if ($count == 1) {
97
+                $m .= '(' . _T('texte_compte_element', ['count' => $count]) . ")\n";
98
+            } else {
99
+                $m .= '(' . _T('texte_vide') . ")\n";
100
+            }
101
+        }
102 102
 
103
-		if (
104
-			$result_repair
105
-			and $msg = join(
106
-				' ',
107
-				(is_resource($result_repair) or is_object($result_repair)) ? sql_fetch($result_repair) : $result_repair
108
-			) . ' '
109
-			and strpos($msg, ' OK ') === false
110
-		) {
111
-			$class = " class='notice'";
112
-			$m .= '<br /><tt>' . spip_htmlentities($msg) . "</tt>\n";
113
-		} else {
114
-			$m .= ' ' . _T('texte_table_ok');
115
-		}
103
+        if (
104
+            $result_repair
105
+            and $msg = join(
106
+                ' ',
107
+                (is_resource($result_repair) or is_object($result_repair)) ? sql_fetch($result_repair) : $result_repair
108
+            ) . ' '
109
+            and strpos($msg, ' OK ') === false
110
+        ) {
111
+            $class = " class='notice'";
112
+            $m .= '<br /><tt>' . spip_htmlentities($msg) . "</tt>\n";
113
+        } else {
114
+            $m .= ' ' . _T('texte_table_ok');
115
+        }
116 116
 
117
-		$res .= "<div$class>$m</div>";
118
-	}
117
+        $res .= "<div$class>$m</div>";
118
+    }
119 119
 
120
-	return $res;
120
+    return $res;
121 121
 }
Please login to merge, or discard this patch.