@@ -58,12 +58,12 @@ discard block |
||
| 58 | 58 | $link = @mysqli_connect($host, $login, $pass); |
| 59 | 59 | } |
| 60 | 60 | } catch (\mysqli_sql_exception $e) { |
| 61 | - spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG); |
|
| 61 | + spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG); |
|
| 62 | 62 | $link = false; |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | 65 | if (!$link) { |
| 66 | - spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS); |
|
| 66 | + spip_log('Echec mysqli_connect. Erreur : '.mysqli_connect_error(), 'mysql.'._LOG_HS); |
|
| 67 | 67 | |
| 68 | 68 | return false; |
| 69 | 69 | } |
@@ -82,7 +82,7 @@ discard block |
||
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | spip_log( |
| 85 | - "Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'), |
|
| 85 | + "Connexion MySQLi vers $host, base $db, prefixe $prefixe ".($ok ? 'operationnelle' : 'impossible'), |
|
| 86 | 86 | _LOG_DEBUG |
| 87 | 87 | ); |
| 88 | 88 | |
@@ -173,9 +173,9 @@ discard block |
||
| 173 | 173 | */ |
| 174 | 174 | function spip_mysql_set_charset($charset, $serveur = '', $requeter = true) { |
| 175 | 175 | $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]; |
| 176 | - spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG); |
|
| 176 | + spip_log('changement de charset sql : '.'SET NAMES '._q($charset), _LOG_DEBUG); |
|
| 177 | 177 | |
| 178 | - return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset)); |
|
| 178 | + return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES '._q($charset)); |
|
| 179 | 179 | } |
| 180 | 180 | |
| 181 | 181 | |
@@ -190,7 +190,7 @@ discard block |
||
| 190 | 190 | function spip_mysql_get_charset($charset = [], $serveur = '', $requeter = true) { |
| 191 | 191 | $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]; |
| 192 | 192 | $connexion['last'] = $c = 'SHOW CHARACTER SET' |
| 193 | - . (!$charset ? '' : (' LIKE ' . _q($charset['charset']))); |
|
| 193 | + . (!$charset ? '' : (' LIKE '._q($charset['charset']))); |
|
| 194 | 194 | |
| 195 | 195 | return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur); |
| 196 | 196 | } |
@@ -234,21 +234,21 @@ discard block |
||
| 234 | 234 | $debug = ''; |
| 235 | 235 | if (defined('_DEBUG_SLOW_QUERIES') && _DEBUG_SLOW_QUERIES) { |
| 236 | 236 | if (isset($GLOBALS['debug']['aucasou'])) { |
| 237 | - [, $id, , $infos] = $GLOBALS['debug']['aucasou']; |
|
| 238 | - $debug .= "BOUCLE$id @ " . ($infos[0] ?? '') . ' | '; |
|
| 237 | + [, $id,, $infos] = $GLOBALS['debug']['aucasou']; |
|
| 238 | + $debug .= "BOUCLE$id @ ".($infos[0] ?? '').' | '; |
|
| 239 | 239 | } |
| 240 | 240 | if (isset($_SERVER['REQUEST_URI'])) { |
| 241 | 241 | $debug .= $_SERVER['REQUEST_URI']; |
| 242 | 242 | } |
| 243 | 243 | if (!empty($GLOBALS['ip'])) { |
| 244 | - $debug .= ' + ' . $GLOBALS['ip']; |
|
| 244 | + $debug .= ' + '.$GLOBALS['ip']; |
|
| 245 | 245 | } |
| 246 | - $debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */'; |
|
| 246 | + $debug = ' /* '.mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)).' */'; |
|
| 247 | 247 | } |
| 248 | 248 | try { |
| 249 | - $r = mysqli_query($link, $query . $debug); |
|
| 249 | + $r = mysqli_query($link, $query.$debug); |
|
| 250 | 250 | } catch (\mysqli_sql_exception $e) { |
| 251 | - spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG); |
|
| 251 | + spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG); |
|
| 252 | 252 | $r = false; |
| 253 | 253 | // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno() |
| 254 | 254 | // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report(). |
@@ -266,9 +266,9 @@ discard block |
||
| 266 | 266 | $link = $connexion['link']; |
| 267 | 267 | //On retente au cas où |
| 268 | 268 | try { |
| 269 | - $r = mysqli_query($link, $query . $debug); |
|
| 269 | + $r = mysqli_query($link, $query.$debug); |
|
| 270 | 270 | } catch (\mysqli_sql_exception $e) { |
| 271 | - spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG); |
|
| 271 | + spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG); |
|
| 272 | 272 | $r = false; |
| 273 | 273 | // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno() |
| 274 | 274 | // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report(). |
@@ -301,7 +301,7 @@ discard block |
||
| 301 | 301 | // d'utiliser ceux-ci, copie-colle de phpmyadmin |
| 302 | 302 | $query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query); |
| 303 | 303 | |
| 304 | - return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille |
|
| 304 | + return spip_mysql_query('ALTER '.$query, $serveur, $requeter); # i.e. que PG se debrouille |
|
| 305 | 305 | } |
| 306 | 306 | |
| 307 | 307 | |
@@ -314,7 +314,7 @@ discard block |
||
| 314 | 314 | * @return bool Toujours true |
| 315 | 315 | */ |
| 316 | 316 | function spip_mysql_optimize($table, $serveur = '', $requeter = true) { |
| 317 | - spip_mysql_query('OPTIMIZE TABLE ' . $table); |
|
| 317 | + spip_mysql_query('OPTIMIZE TABLE '.$table); |
|
| 318 | 318 | |
| 319 | 319 | return true; |
| 320 | 320 | } |
@@ -337,7 +337,7 @@ discard block |
||
| 337 | 337 | $link = $connexion['link']; |
| 338 | 338 | $db = $connexion['db']; |
| 339 | 339 | |
| 340 | - $query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe); |
|
| 340 | + $query = 'EXPLAIN '._mysql_traite_query($query, $db, $prefixe); |
|
| 341 | 341 | $r = mysqli_query($link, $query); |
| 342 | 342 | |
| 343 | 343 | return spip_mysql_fetch($r, null, $serveur); |
@@ -388,7 +388,7 @@ discard block |
||
| 388 | 388 | . calculer_mysql_expression('WHERE', $where) |
| 389 | 389 | . calculer_mysql_expression('GROUP BY', $groupby, ',') |
| 390 | 390 | . calculer_mysql_expression('HAVING', $having) |
| 391 | - . ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '') |
|
| 391 | + . ($orderby ? ("\nORDER BY ".spip_mysql_order($orderby)) : '') |
|
| 392 | 392 | . ($limit ? "\nLIMIT $limit" : ''); |
| 393 | 393 | |
| 394 | 394 | // renvoyer la requete inerte si demandee |
@@ -478,12 +478,12 @@ discard block |
||
| 478 | 478 | $exp = "\n$expression "; |
| 479 | 479 | |
| 480 | 480 | if (!is_array($v)) { |
| 481 | - return $exp . $v; |
|
| 481 | + return $exp.$v; |
|
| 482 | 482 | } else { |
| 483 | 483 | if (strtoupper($join) === 'AND') { |
| 484 | - return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v)); |
|
| 484 | + return $exp.join("\n\t$join ", array_map('calculer_mysql_where', $v)); |
|
| 485 | 485 | } else { |
| 486 | - return $exp . join($join, $v); |
|
| 486 | + return $exp.join($join, $v); |
|
| 487 | 487 | } |
| 488 | 488 | } |
| 489 | 489 | } |
@@ -501,17 +501,17 @@ discard block |
||
| 501 | 501 | if (str_ends_with($k, '@')) { |
| 502 | 502 | // c'est une jointure qui se refere au from precedent |
| 503 | 503 | // pas de virgule |
| 504 | - $res .= ' ' . $v; |
|
| 504 | + $res .= ' '.$v; |
|
| 505 | 505 | } else { |
| 506 | 506 | if (!is_numeric($k)) { |
| 507 | 507 | $p = strpos($v, ' '); |
| 508 | 508 | if ($p) { |
| 509 | - $v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p); |
|
| 509 | + $v = substr($v, 0, $p)." AS `$k`".substr($v, $p); |
|
| 510 | 510 | } else { |
| 511 | 511 | $v .= " AS `$k`"; |
| 512 | 512 | } |
| 513 | 513 | } |
| 514 | - $res .= ', ' . $v; |
|
| 514 | + $res .= ', '.$v; |
|
| 515 | 515 | } |
| 516 | 516 | } |
| 517 | 517 | |
@@ -541,13 +541,13 @@ discard block |
||
| 541 | 541 | function _mysql_traite_query($query, $db = '', $prefixe = '', $echappe_textes = true) { |
| 542 | 542 | |
| 543 | 543 | if ($GLOBALS['mysql_rappel_nom_base'] && $db) { |
| 544 | - $pref = '`' . $db . '`.'; |
|
| 544 | + $pref = '`'.$db.'`.'; |
|
| 545 | 545 | } else { |
| 546 | 546 | $pref = ''; |
| 547 | 547 | } |
| 548 | 548 | |
| 549 | 549 | if ($prefixe) { |
| 550 | - $pref .= $prefixe . '_'; |
|
| 550 | + $pref .= $prefixe.'_'; |
|
| 551 | 551 | } |
| 552 | 552 | |
| 553 | 553 | if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) { |
@@ -566,7 +566,7 @@ discard block |
||
| 566 | 566 | $suite_echap = $suite; |
| 567 | 567 | } |
| 568 | 568 | if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) { |
| 569 | - $suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false); |
|
| 569 | + $suite_echap = $r[1]._mysql_traite_query($r[2], $db, $prefixe, false); |
|
| 570 | 570 | if ($echappe_textes) { |
| 571 | 571 | $suite = query_reinjecte_textes($suite_echap, $textes); |
| 572 | 572 | } |
@@ -576,7 +576,7 @@ discard block |
||
| 576 | 576 | } |
| 577 | 577 | } |
| 578 | 578 | } |
| 579 | - $r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite; |
|
| 579 | + $r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1'.$pref, $query).$suite; |
|
| 580 | 580 | |
| 581 | 581 | // en option, remplacer les emoji (que mysql ne sait pas gérer) en 💩 |
| 582 | 582 | // remplacer les emoji (que mysql ne sait pas gérer) en 💩 |
@@ -616,7 +616,7 @@ discard block |
||
| 616 | 616 | $ok = false; |
| 617 | 617 | } |
| 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 |
||
| 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 |
||
| 719 | 719 | preg_match(',(char|text),i', $defs[1]) |
| 720 | 720 | && !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 |
||
| 731 | 731 | $s = ','; |
| 732 | 732 | } |
| 733 | 733 | $temporary = $temporary ? 'TEMPORARY' : ''; |
| 734 | - $q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')' |
|
| 735 | - . (defined('_MYSQL_ENGINE') ? ' ENGINE=' . _MYSQL_ENGINE : '') |
|
| 734 | + $q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query".($keys ? ",$keys" : '').')' |
|
| 735 | + . (defined('_MYSQL_ENGINE') ? ' ENGINE='._MYSQL_ENGINE : '') |
|
| 736 | 736 | . ($character_set ? " DEFAULT $character_set" : '') |
| 737 | 737 | . "\n"; |
| 738 | 738 | |
@@ -811,7 +811,7 @@ discard block |
||
| 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 | } |
@@ -865,7 +865,7 @@ discard block |
||
| 865 | 865 | * Ressource à utiliser avec sql_fetch() |
| 866 | 866 | **/ |
| 867 | 867 | function spip_mysql_showbase($match, $serveur = '', $requeter = true) { |
| 868 | - return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter); |
|
| 868 | + return spip_mysql_query('SHOW TABLES LIKE '._q($match), $serveur, $requeter); |
|
| 869 | 869 | } |
| 870 | 870 | |
| 871 | 871 | /** |
@@ -881,7 +881,7 @@ discard block |
||
| 881 | 881 | * - true si la requête a réussie, false sinon |
| 882 | 882 | */ |
| 883 | 883 | function spip_mysql_repair($table, $serveur = '', $requeter = true) { |
| 884 | - $table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true)); |
|
| 884 | + $table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = '._q($table), $serveur, true)); |
|
| 885 | 885 | $engine = $table_status['Engine']; |
| 886 | 886 | if ($engine == 'InnoDB') { |
| 887 | 887 | if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) { |
@@ -890,7 +890,7 @@ discard block |
||
| 890 | 890 | } elseif ($engine == 'MyISAM') { |
| 891 | 891 | return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter); |
| 892 | 892 | } else { |
| 893 | - spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG); |
|
| 893 | + spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.'._LOG_DEBUG); |
|
| 894 | 894 | } |
| 895 | 895 | return false; |
| 896 | 896 | } |
@@ -910,7 +910,7 @@ discard block |
||
| 910 | 910 | * - string : requete sql, si $requeter = true |
| 911 | 911 | **/ |
| 912 | 912 | function spip_mysql_table_exists(string $table, $serveur = '', $requeter = true) { |
| 913 | - $r = spip_mysql_query('SHOW TABLES LIKE ' . _q($table), $serveur, $requeter); |
|
| 913 | + $r = spip_mysql_query('SHOW TABLES LIKE '._q($table), $serveur, $requeter); |
|
| 914 | 914 | if (!$requeter) { |
| 915 | 915 | return $r; |
| 916 | 916 | } |
@@ -992,22 +992,22 @@ discard block |
||
| 992 | 992 | } |
| 993 | 993 | if ($val['Default'] === '0' || $val['Default']) { |
| 994 | 994 | if (preg_match('/[A-Z_]/', $val['Default'])) { |
| 995 | - $nfields[$val['Field']] .= ' DEFAULT ' . $val['Default']; |
|
| 995 | + $nfields[$val['Field']] .= ' DEFAULT '.$val['Default']; |
|
| 996 | 996 | } else { |
| 997 | - $nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'"; |
|
| 997 | + $nfields[$val['Field']] .= " DEFAULT '".$val['Default']."'"; |
|
| 998 | 998 | } |
| 999 | 999 | } |
| 1000 | 1000 | if ($val['Extra']) { |
| 1001 | - $nfields[$val['Field']] .= ' ' . $val['Extra']; |
|
| 1001 | + $nfields[$val['Field']] .= ' '.$val['Extra']; |
|
| 1002 | 1002 | } |
| 1003 | 1003 | if ($val['Key'] == 'PRI') { |
| 1004 | 1004 | $nkeys['PRIMARY KEY'] = $val['Field']; |
| 1005 | 1005 | } else { |
| 1006 | 1006 | if ($val['Key'] == 'MUL') { |
| 1007 | - $nkeys['KEY ' . $val['Field']] = $val['Field']; |
|
| 1007 | + $nkeys['KEY '.$val['Field']] = $val['Field']; |
|
| 1008 | 1008 | } else { |
| 1009 | 1009 | if ($val['Key'] == 'UNI') { |
| 1010 | - $nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field']; |
|
| 1010 | + $nkeys['UNIQUE KEY '.$val['Field']] = $val['Field']; |
|
| 1011 | 1011 | } |
| 1012 | 1012 | } |
| 1013 | 1013 | } |
@@ -1083,7 +1083,7 @@ discard block |
||
| 1083 | 1083 | $serveur = '', |
| 1084 | 1084 | $requeter = true |
| 1085 | 1085 | ) { |
| 1086 | - $c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby))); |
|
| 1086 | + $c = !$groupby ? '*' : ('DISTINCT '.(is_string($groupby) ? $groupby : join(',', $groupby))); |
|
| 1087 | 1087 | |
| 1088 | 1088 | $r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter); |
| 1089 | 1089 | if (!$requeter) { |
@@ -1123,7 +1123,7 @@ discard block |
||
| 1123 | 1123 | if ($s) { |
| 1124 | 1124 | $trace = debug_backtrace(); |
| 1125 | 1125 | if ($trace[0]['function'] != 'spip_mysql_error') { |
| 1126 | - spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR); |
|
| 1126 | + spip_log("$s - $query - ".sql_error_backtrace(), 'mysql.'._LOG_ERREUR); |
|
| 1127 | 1127 | } |
| 1128 | 1128 | } |
| 1129 | 1129 | |
@@ -1253,7 +1253,7 @@ discard block |
||
| 1253 | 1253 | try { |
| 1254 | 1254 | $insert = mysqli_query($link, $query); |
| 1255 | 1255 | } catch (\mysqli_sql_exception $e) { |
| 1256 | - spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG); |
|
| 1256 | + spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG); |
|
| 1257 | 1257 | // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno() |
| 1258 | 1258 | // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report(). |
| 1259 | 1259 | } |
@@ -1308,8 +1308,8 @@ discard block |
||
| 1308 | 1308 | |
| 1309 | 1309 | return spip_mysql_insert( |
| 1310 | 1310 | $table, |
| 1311 | - '(' . join(',', array_keys($couples)) . ')', |
|
| 1312 | - '(' . join(',', $couples) . ')', |
|
| 1311 | + '('.join(',', array_keys($couples)).')', |
|
| 1312 | + '('.join(',', $couples).')', |
|
| 1313 | 1313 | $desc, |
| 1314 | 1314 | $serveur, |
| 1315 | 1315 | $requeter |
@@ -1346,7 +1346,7 @@ discard block |
||
| 1346 | 1346 | } |
| 1347 | 1347 | $fields = $desc['field'] ?? []; |
| 1348 | 1348 | |
| 1349 | - $cles = '(' . join(',', array_keys(reset($tab_couples))) . ')'; |
|
| 1349 | + $cles = '('.join(',', array_keys(reset($tab_couples))).')'; |
|
| 1350 | 1350 | $valeurs = []; |
| 1351 | 1351 | $r = false; |
| 1352 | 1352 | |
@@ -1355,7 +1355,7 @@ discard block |
||
| 1355 | 1355 | foreach ($couples as $champ => $val) { |
| 1356 | 1356 | $couples[$champ] = spip_mysql_cite($val, $fields[$champ]); |
| 1357 | 1357 | } |
| 1358 | - $valeurs[] = '(' . join(',', $couples) . ')'; |
|
| 1358 | + $valeurs[] = '('.join(',', $couples).')'; |
|
| 1359 | 1359 | if (count($valeurs) >= 100) { |
| 1360 | 1360 | $r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter); |
| 1361 | 1361 | $valeurs = []; |
@@ -1392,7 +1392,7 @@ discard block |
||
| 1392 | 1392 | function spip_mysql_update($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) { |
| 1393 | 1393 | $set = []; |
| 1394 | 1394 | foreach ($champs as $champ => $val) { |
| 1395 | - $set[] = $champ . "=$val"; |
|
| 1395 | + $set[] = $champ."=$val"; |
|
| 1396 | 1396 | } |
| 1397 | 1397 | if (!empty($set)) { |
| 1398 | 1398 | return spip_mysql_query( |
@@ -1449,7 +1449,7 @@ discard block |
||
| 1449 | 1449 | } |
| 1450 | 1450 | $set = []; |
| 1451 | 1451 | foreach ($champs as $champ => $val) { |
| 1452 | - $set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]); |
|
| 1452 | + $set[] = $champ.'='.spip_mysql_cite($val, @$fields[$champ]); |
|
| 1453 | 1453 | } |
| 1454 | 1454 | |
| 1455 | 1455 | return spip_mysql_query( |
@@ -1518,10 +1518,10 @@ discard block |
||
| 1518 | 1518 | * - false en cas d'erreur. |
| 1519 | 1519 | **/ |
| 1520 | 1520 | function spip_mysql_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) { |
| 1521 | - return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join( |
|
| 1521 | + return spip_mysql_query("REPLACE $table (".join(',', array_keys($couples)).') VALUES ('.join( |
|
| 1522 | 1522 | ',', |
| 1523 | 1523 | array_map('_q', $couples) |
| 1524 | - ) . ')', $serveur, $requeter); |
|
| 1524 | + ).')', $serveur, $requeter); |
|
| 1525 | 1525 | } |
| 1526 | 1526 | |
| 1527 | 1527 | |
@@ -1550,10 +1550,10 @@ discard block |
||
| 1550 | 1550 | * - false en cas d'erreur. |
| 1551 | 1551 | **/ |
| 1552 | 1552 | function spip_mysql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) { |
| 1553 | - $cles = '(' . join(',', array_keys($tab_couples[0])) . ')'; |
|
| 1553 | + $cles = '('.join(',', array_keys($tab_couples[0])).')'; |
|
| 1554 | 1554 | $valeurs = []; |
| 1555 | 1555 | foreach ($tab_couples as $couples) { |
| 1556 | - $valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')'; |
|
| 1556 | + $valeurs[] = '('.join(',', array_map('_q', $couples)).')'; |
|
| 1557 | 1557 | } |
| 1558 | 1558 | $valeurs = implode(', ', $valeurs); |
| 1559 | 1559 | |
@@ -1573,28 +1573,28 @@ discard block |
||
| 1573 | 1573 | */ |
| 1574 | 1574 | function spip_mysql_multi($objet, $lang) { |
| 1575 | 1575 | $lengthlang = strlen("[$lang]"); |
| 1576 | - $posmulti = 'INSTR(' . $objet . ", '<multi>')"; |
|
| 1577 | - $posfinmulti = 'INSTR(' . $objet . ", '</multi>')"; |
|
| 1578 | - $debutchaine = 'LEFT(' . $objet . ", $posmulti-1)"; |
|
| 1579 | - $finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))"; |
|
| 1580 | - $chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))"; |
|
| 1581 | - $poslang = "INSTR($chainemulti,'[" . $lang . "]')"; |
|
| 1576 | + $posmulti = 'INSTR('.$objet.", '<multi>')"; |
|
| 1577 | + $posfinmulti = 'INSTR('.$objet.", '</multi>')"; |
|
| 1578 | + $debutchaine = 'LEFT('.$objet.", $posmulti-1)"; |
|
| 1579 | + $finchaine = 'RIGHT('.$objet.', CHAR_LENGTH('.$objet.") -(7+$posfinmulti))"; |
|
| 1580 | + $chainemulti = 'TRIM(SUBSTRING('.$objet.", $posmulti+7, $posfinmulti -(7+$posmulti)))"; |
|
| 1581 | + $poslang = "INSTR($chainemulti,'[".$lang."]')"; |
|
| 1582 | 1582 | $poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)"; |
| 1583 | - $chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))"; |
|
| 1584 | - $posfinlang = 'INSTR(' . $chainelang . ", '[')"; |
|
| 1583 | + $chainelang = 'TRIM(SUBSTRING('.$objet.", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))"; |
|
| 1584 | + $posfinlang = 'INSTR('.$chainelang.", '[')"; |
|
| 1585 | 1585 | $chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)"; |
| 1586 | 1586 | //$chainelang = "LEFT($chainelang,$posfinlang-1)"; |
| 1587 | - $retour = "(TRIM(IF($posmulti = 0 , " . |
|
| 1588 | - ' TRIM(' . $objet . '), ' . |
|
| 1589 | - ' CONCAT( ' . |
|
| 1590 | - " $debutchaine, " . |
|
| 1591 | - ' IF( ' . |
|
| 1592 | - " $poslang = 0, " . |
|
| 1593 | - " $chainemulti, " . |
|
| 1594 | - " $chainelang" . |
|
| 1595 | - ' ), ' . |
|
| 1596 | - " $finchaine" . |
|
| 1597 | - ' ) ' . |
|
| 1587 | + $retour = "(TRIM(IF($posmulti = 0 , ". |
|
| 1588 | + ' TRIM('.$objet.'), '. |
|
| 1589 | + ' CONCAT( '. |
|
| 1590 | + " $debutchaine, ". |
|
| 1591 | + ' IF( '. |
|
| 1592 | + " $poslang = 0, ". |
|
| 1593 | + " $chainemulti, ". |
|
| 1594 | + " $chainelang". |
|
| 1595 | + ' ), '. |
|
| 1596 | + " $finchaine". |
|
| 1597 | + ' ) '. |
|
| 1598 | 1598 | '))) AS multi'; |
| 1599 | 1599 | |
| 1600 | 1600 | return $retour; |
@@ -1611,7 +1611,7 @@ discard block |
||
| 1611 | 1611 | * Valeur hexadécimale pour MySQL |
| 1612 | 1612 | **/ |
| 1613 | 1613 | function spip_mysql_hex($v) { |
| 1614 | - return '0x' . $v; |
|
| 1614 | + return '0x'.$v; |
|
| 1615 | 1615 | } |
| 1616 | 1616 | |
| 1617 | 1617 | /** |
@@ -1651,7 +1651,7 @@ discard block |
||
| 1651 | 1651 | * Expression SQL |
| 1652 | 1652 | **/ |
| 1653 | 1653 | function spip_mysql_date_proche($champ, $interval, $unite) { |
| 1654 | - $use_now = ( ($champ === 'maj' || strpos($champ, '.maj')) ? true : false ); |
|
| 1654 | + $use_now = (($champ === 'maj' || strpos($champ, '.maj')) ? true : false); |
|
| 1655 | 1655 | return '(' |
| 1656 | 1656 | . $champ |
| 1657 | 1657 | . (($interval <= 0) ? '>' : '<') |
@@ -1706,7 +1706,7 @@ discard block |
||
| 1706 | 1706 | } elseif ($v === null) { |
| 1707 | 1707 | return "''"; |
| 1708 | 1708 | } |
| 1709 | - return "'" . addslashes($v) . "'"; |
|
| 1709 | + return "'".addslashes($v)."'"; |
|
| 1710 | 1710 | } |
| 1711 | 1711 | |
| 1712 | 1712 | if ($v === null) { |
@@ -1730,7 +1730,7 @@ discard block |
||
| 1730 | 1730 | } |
| 1731 | 1731 | } |
| 1732 | 1732 | |
| 1733 | - return ("'" . addslashes($v) . "'"); |
|
| 1733 | + return ("'".addslashes($v)."'"); |
|
| 1734 | 1734 | } |
| 1735 | 1735 | |
| 1736 | 1736 | /** |
@@ -1764,7 +1764,7 @@ discard block |
||
| 1764 | 1764 | } else { |
| 1765 | 1765 | $GLOBALS['mysql_rappel_nom_base'] = false; |
| 1766 | 1766 | |
| 1767 | - return "\$GLOBALS['mysql_rappel_nom_base'] = false; " . |
|
| 1767 | + return "\$GLOBALS['mysql_rappel_nom_base'] = false; ". |
|
| 1768 | 1768 | "/* echec de test_rappel_nom_base_mysql a l'installation. */\n"; |
| 1769 | 1769 | } |
| 1770 | 1770 | } |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | final class SpipCles { |
| 16 | 16 | private static array $instances = []; |
| 17 | 17 | |
| 18 | - private string $file = _DIR_ETC . 'cles.php'; |
|
| 18 | + private string $file = _DIR_ETC.'cles.php'; |
|
| 19 | 19 | private readonly Cles $cles; |
| 20 | 20 | |
| 21 | 21 | public static function instance(string $file = ''): self { |
@@ -114,7 +114,7 @@ discard block |
||
| 114 | 114 | !empty($cles_potentielles['secret_des_auth']) |
| 115 | 115 | && !Password::verifier($password_clair, $password_hash, $cles_potentielles['secret_des_auth']) |
| 116 | 116 | ) { |
| 117 | - spip_log("Restauration de la cle `secret_des_auth` par id_auteur $id_auteur erronnee, on ignore", 'chiffrer' . _LOG_INFO_IMPORTANTE); |
|
| 117 | + spip_log("Restauration de la cle `secret_des_auth` par id_auteur $id_auteur erronnee, on ignore", 'chiffrer'._LOG_INFO_IMPORTANTE); |
|
| 118 | 118 | unset($cles_potentielles['secret_des_auth']); |
| 119 | 119 | } |
| 120 | 120 | |
@@ -123,7 +123,7 @@ discard block |
||
| 123 | 123 | foreach ($cles_potentielles as $name => $key) { |
| 124 | 124 | if (!$this->cles->has($name)) { |
| 125 | 125 | $this->cles->set($name, $key); |
| 126 | - spip_log("Restauration de la cle $name par id_auteur $id_auteur", 'chiffrer' . _LOG_INFO_IMPORTANTE); |
|
| 126 | + spip_log("Restauration de la cle $name par id_auteur $id_auteur", 'chiffrer'._LOG_INFO_IMPORTANTE); |
|
| 127 | 127 | $restauration = true; |
| 128 | 128 | } |
| 129 | 129 | } |
@@ -141,7 +141,7 @@ discard block |
||
| 141 | 141 | return $this->cles->get($name); |
| 142 | 142 | } |
| 143 | 143 | // sinon loger et annule la cle generee car il ne faut pas l'utiliser |
| 144 | - spip_log('Echec ecriture du fichier cle ' . $this->file . " ; impossible de generer une cle $name", 'chiffrer' . _LOG_ERREUR); |
|
| 144 | + spip_log('Echec ecriture du fichier cle '.$this->file." ; impossible de generer une cle $name", 'chiffrer'._LOG_ERREUR); |
|
| 145 | 145 | $this->cles->delete($name); |
| 146 | 146 | } |
| 147 | 147 | return null; |
@@ -150,7 +150,7 @@ discard block |
||
| 150 | 150 | private function getMetaKey(string $name, bool $autoInit = true): ?string { |
| 151 | 151 | if (!isset($GLOBALS['meta'][$name])) { |
| 152 | 152 | include_spip('base/abstract_sql'); |
| 153 | - $GLOBALS['meta'][$name] = sql_getfetsel('valeur', 'spip_meta', 'nom = ' . sql_quote($name, '', 'string')); |
|
| 153 | + $GLOBALS['meta'][$name] = sql_getfetsel('valeur', 'spip_meta', 'nom = '.sql_quote($name, '', 'string')); |
|
| 154 | 154 | } |
| 155 | 155 | $key = base64_decode($GLOBALS['meta'][$name] ?? ''); |
| 156 | 156 | if (strlen($key) === \SODIUM_CRYPTO_SECRETBOX_KEYBYTES) { |
@@ -27,13 +27,13 @@ |
||
| 27 | 27 | array_shift($backtrace); |
| 28 | 28 | do { |
| 29 | 29 | $t = array_shift($backtrace); |
| 30 | - $fqdn = ($t['class'] ?? '') . ($t['type'] ?? '') . ($t['function'] ?? ''); |
|
| 30 | + $fqdn = ($t['class'] ?? '').($t['type'] ?? '').($t['function'] ?? ''); |
|
| 31 | 31 | } while (in_array($fqdn, ['trigger_error', 'trigger_deprecation'])); |
| 32 | 32 | |
| 33 | 33 | $errfile = $t['file']; |
| 34 | 34 | $errline = $t['line']; |
| 35 | 35 | |
| 36 | - spip_log(sprintf('%s in %s on line %s', $errstr, $errfile, $errline), 'deprecated.' . _LOG_INFO); |
|
| 36 | + spip_log(sprintf('%s in %s on line %s', $errstr, $errfile, $errline), 'deprecated.'._LOG_INFO); |
|
| 37 | 37 | return false; |
| 38 | 38 | } |
| 39 | 39 | } |
@@ -51,10 +51,10 @@ discard block |
||
| 51 | 51 | } |
| 52 | 52 | |
| 53 | 53 | $upperTag = strtoupper($this->tag); |
| 54 | - $hasUpperCaseTags = ($upperTag !== $this->tag && (str_contains($texte, '<' . $upperTag) || str_contains($texte, '</' . $upperTag))); |
|
| 54 | + $hasUpperCaseTags = ($upperTag !== $this->tag && (str_contains($texte, '<'.$upperTag) || str_contains($texte, '</'.$upperTag))); |
|
| 55 | 55 | |
| 56 | 56 | // collecter les balises ouvrantes |
| 57 | - $opening = static::collecteur($texte, '', $hasUpperCaseTags ? '<' : '<' . $this->tag, $this->preg_openingtag, empty($options['detecter_presence']) ? 0 : 1); |
|
| 57 | + $opening = static::collecteur($texte, '', $hasUpperCaseTags ? '<' : '<'.$this->tag, $this->preg_openingtag, empty($options['detecter_presence']) ? 0 : 1); |
|
| 58 | 58 | if (!$opening) { |
| 59 | 59 | return []; |
| 60 | 60 | } |
@@ -65,7 +65,7 @@ discard block |
||
| 65 | 65 | } |
| 66 | 66 | |
| 67 | 67 | // collecter les balises fermantes |
| 68 | - $closing = static::collecteur($texte, '', $hasUpperCaseTags ? '</' : '</' . $this->tag, $this->preg_closingtag); |
|
| 68 | + $closing = static::collecteur($texte, '', $hasUpperCaseTags ? '</' : '</'.$this->tag, $this->preg_closingtag); |
|
| 69 | 69 | |
| 70 | 70 | $profondeur = ($options['profondeur'] ?? 1); |
| 71 | 71 | $tags = []; |
@@ -183,12 +183,12 @@ discard block |
||
| 183 | 183 | // et on aura pas non plus de innerHtml si pas de preg_closingtag |
| 184 | 184 | if ($this->preg_closingtag) { |
| 185 | 185 | $tag = $this->tag; |
| 186 | - $legacy_callback = function ($c, $options) use ($tag, $callback_function) { |
|
| 186 | + $legacy_callback = function($c, $options) use ($tag, $callback_function) { |
|
| 187 | 187 | // legacy : renseigner les infos correspondantes aux matchs de l'ancienne regexp |
| 188 | 188 | $regs = [ |
| 189 | 189 | 0 => $c['raw'], |
| 190 | 190 | 1 => $tag, |
| 191 | - 2 => $c['match'][1] . $c['match'][2], |
|
| 191 | + 2 => $c['match'][1].$c['match'][2], |
|
| 192 | 192 | 3 => $c['innerHtml'], |
| 193 | 193 | 'tag' => $this->tag, |
| 194 | 194 | ] + $c; |
@@ -128,13 +128,13 @@ discard block |
||
| 128 | 128 | // generer un marqueur qui n'existe pas dans le texte |
| 129 | 129 | do { |
| 130 | 130 | $this->markId = substr(md5(uniqid(static::class, 1)), 0, 7); |
| 131 | - $this->markId = '@|' . static::$markPrefix . $this->markId . '|'; |
|
| 131 | + $this->markId = '@|'.static::$markPrefix.$this->markId.'|'; |
|
| 132 | 132 | } while (str_contains($texte, $this->markId)); |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | $offset_pos = 0; |
| 136 | 136 | foreach ($collection as $c) { |
| 137 | - $rempl = $this->markId . base64_encode((string) $c['raw']) . '|@'; |
|
| 137 | + $rempl = $this->markId.base64_encode((string) $c['raw']).'|@'; |
|
| 138 | 138 | $texte = substr_replace($texte, $rempl, $c['pos'] + $offset_pos, $c['length']); |
| 139 | 139 | $offset_pos += strlen($rempl) - $c['length']; |
| 140 | 140 | } |
@@ -179,7 +179,7 @@ discard block |
||
| 179 | 179 | static $pregBalisesBloc; |
| 180 | 180 | |
| 181 | 181 | if ($pregBalisesBloc === null) { |
| 182 | - $pregBalisesBloc = ',</?(' . implode('|', static::$listeBalisesBloc) . ')[>[:space:]],iS'; |
|
| 182 | + $pregBalisesBloc = ',</?('.implode('|', static::$listeBalisesBloc).')[>[:space:]],iS'; |
|
| 183 | 183 | } |
| 184 | 184 | return (str_contains($texte, '<') && preg_match($pregBalisesBloc, $texte)) ? true : false; |
| 185 | 185 | } |
@@ -205,7 +205,7 @@ discard block |
||
| 205 | 205 | include_spip('inc/filtres'); |
| 206 | 206 | } |
| 207 | 207 | foreach ($attributs as $k => $v) { |
| 208 | - $atts .= " $k=\"" . \attribut_html($v) . '"'; |
|
| 208 | + $atts .= " $k=\"".\attribut_html($v).'"'; |
|
| 209 | 209 | } |
| 210 | 210 | } |
| 211 | 211 | |
@@ -235,7 +235,7 @@ discard block |
||
| 235 | 235 | # spip_log(spip_htmlspecialchars($texte)); ## pour les curieux |
| 236 | 236 | $max_prof = 5; |
| 237 | 237 | $encore = true; |
| 238 | - while ($encore && str_contains($texte, 'base64' . $source) && $max_prof--) { |
|
| 238 | + while ($encore && str_contains($texte, 'base64'.$source) && $max_prof--) { |
|
| 239 | 239 | $encore = false; |
| 240 | 240 | foreach (['span', 'div'] as $tag) { |
| 241 | 241 | $htmlTagCollecteur = new HtmlTag( |
@@ -204,7 +204,7 @@ |
||
| 204 | 204 | $trad_propre = preg_replace(',(^<p[^>]*>|</p>$),Uims', '', (string) propre($trad)); |
| 205 | 205 | $isBloc = self::echappementTexteContientBaliseBloc($trad_propre); |
| 206 | 206 | if ($isBloc) { |
| 207 | - $trad = rtrim((string) $trad) . "\n\n"; |
|
| 207 | + $trad = rtrim((string) $trad)."\n\n"; |
|
| 208 | 208 | } |
| 209 | 209 | $attributs = ['lang' => $l]; |
| 210 | 210 | if (lang_dir($l) !== lang_dir($lang)) { |
@@ -51,12 +51,12 @@ |
||
| 51 | 51 | // chercher la classe d'iterateur Iterateur/XXX |
| 52 | 52 | // definie dans le fichier src/Compilateur/Iterateur/xxx.php |
| 53 | 53 | // FIXME: déclarer quelque part les iterateurs supplémentaires |
| 54 | - $class = __NAMESPACE__ . '\\' . ucfirst(strtolower((string) $iterateur)); |
|
| 54 | + $class = __NAMESPACE__.'\\'.ucfirst(strtolower((string) $iterateur)); |
|
| 55 | 55 | if (!class_exists($class)) { |
| 56 | 56 | // historique |
| 57 | 57 | // Chercher IterateurXXX |
| 58 | - include_spip('iterateur/' . strtolower($iterateur)); |
|
| 59 | - $class = 'Iterateur' . $iterateur; |
|
| 58 | + include_spip('iterateur/'.strtolower($iterateur)); |
|
| 59 | + $class = 'Iterateur'.$iterateur; |
|
| 60 | 60 | if (!class_exists($class)) { |
| 61 | 61 | exit("Iterateur {$iterateur} non trouvé"); |
| 62 | 62 | // si l'iterateur n'existe pas, on se rabat sur le generique |
@@ -24,13 +24,13 @@ |
||
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | if (!defined('_DIR_TESTS')) { |
| 27 | - define('_DIR_TESTS', substr(_SPIP_TEST_INC, strlen(_SPIP_TEST_CHDIR) + 1) . '/'); |
|
| 27 | + define('_DIR_TESTS', substr(_SPIP_TEST_INC, strlen(_SPIP_TEST_CHDIR) + 1).'/'); |
|
| 28 | 28 | } |
| 29 | 29 | |
| 30 | 30 | // chdir pour charger SPIP |
| 31 | 31 | chdir(_SPIP_TEST_CHDIR); |
| 32 | 32 | |
| 33 | -require_once _SPIP_TEST_CHDIR . '/ecrire/inc_version.php'; |
|
| 33 | +require_once _SPIP_TEST_CHDIR.'/ecrire/inc_version.php'; |
|
| 34 | 34 | |
| 35 | 35 | // pour notice sur recuperer_fond() |
| 36 | 36 | if (!isset($GLOBALS['spip_lang'])) { |
@@ -55,7 +55,7 @@ discard block |
||
| 55 | 55 | |
| 56 | 56 | foreach ($essais as $k => $essai) { |
| 57 | 57 | $expected = array_shift($essai); |
| 58 | - $this->assertEquals($expected, objet_associable(...$essai), "Echec {$k} : objet_associable " . end($essai)); |
|
| 58 | + $this->assertEquals($expected, objet_associable(...$essai), "Echec {$k} : objet_associable ".end($essai)); |
|
| 59 | 59 | } |
| 60 | 60 | } |
| 61 | 61 | |
@@ -132,7 +132,7 @@ discard block |
||
| 132 | 132 | $this->assertEquals( |
| 133 | 133 | $expected, |
| 134 | 134 | objet_associer(...$essai), |
| 135 | - "Echec {$k} : objet_associer " . json_encode($essai, JSON_THROW_ON_ERROR) |
|
| 135 | + "Echec {$k} : objet_associer ".json_encode($essai, JSON_THROW_ON_ERROR) |
|
| 136 | 136 | ); |
| 137 | 137 | } |
| 138 | 138 | } |
@@ -207,7 +207,7 @@ discard block |
||
| 207 | 207 | $this->assertEquals( |
| 208 | 208 | $expected, |
| 209 | 209 | objet_qualifier_liens(...$essai), |
| 210 | - "Echec {$k} : objet_qualifier_liens " . json_encode($essai, JSON_THROW_ON_ERROR) |
|
| 210 | + "Echec {$k} : objet_qualifier_liens ".json_encode($essai, JSON_THROW_ON_ERROR) |
|
| 211 | 211 | ); |
| 212 | 212 | } |
| 213 | 213 | } |
@@ -287,7 +287,7 @@ discard block |
||
| 287 | 287 | $this->assertEquals( |
| 288 | 288 | $expected, |
| 289 | 289 | objet_dissocier(...$essai), |
| 290 | - "Echec {$k} : objet_dissocier " . json_encode($essai, JSON_THROW_ON_ERROR) |
|
| 290 | + "Echec {$k} : objet_dissocier ".json_encode($essai, JSON_THROW_ON_ERROR) |
|
| 291 | 291 | ); |
| 292 | 292 | } |
| 293 | 293 | } |