diff --git a/php/inc_fx_static_sync.php b/php/inc_fx_static_sync.php index 4ef06e4..98320bd 100644 --- a/php/inc_fx_static_sync.php +++ b/php/inc_fx_static_sync.php @@ -42,23 +42,55 @@ function fxStaticSyncConnect($arrConfig) { return null; } - $con = @mysqli_connect( + $mysqli = mysqli_init(); + if (!$mysqli) { + return null; + } + + mysqli_options($mysqli, MYSQLI_OPT_CONNECT_TIMEOUT, 3); + + if (!@mysqli_real_connect( + $mysqli, $arrConfig['host'], $arrConfig['user'], $arrConfig['pass'], $arrConfig['db'], 3306 - ); - - if (!$con) { + )) { return null; } - mysqli_close($con); + mysqli_set_charset($mysqli, 'utf8'); + mysqli_close($mysqli); return new clsMysql($arrConfig); } +/** + * Réutilise les connexions déjà ouvertes par inc_fonctions.php (même pattern que mise en prod). + */ +function fxStaticSyncOpenConnections() { + global $objDatabasePreProd, $objDatabaseProd; + + $tabConnections = array( + 'dev_preprod' => !empty($objDatabasePreProd) ? $objDatabasePreProd : null, + 'dev_prod' => !empty($objDatabaseProd) ? $objDatabaseProd : null, + ); + + $tabEnvs = fxStaticSyncEnvironmentDefinitions(); + + foreach ($tabEnvs as $strEnvId => $tabEnv) { + if (!empty($tabConnections[$strEnvId])) { + continue; + } + if (!empty($tabEnv['config'])) { + $tabConnections[$strEnvId] = fxStaticSyncConnect($tabEnv['config']); + } + } + + return $tabConnections; +} + function fxStaticSyncTableExists($objDb, $strTable) { if (!$objDb) { return false; @@ -356,17 +388,6 @@ function fxStaticSyncBuildReport($tabConnections) { return $tabReport; } -function fxStaticSyncOpenConnections() { - $tabEnvs = fxStaticSyncEnvironmentDefinitions(); - $tabConnections = array(); - - foreach ($tabEnvs as $strEnvId => $tabEnv) { - $tabConnections[$strEnvId] = fxStaticSyncConnect($tabEnv['config']); - } - - return $tabConnections; -} - function fxStaticSyncGetDiffDetail($strTable, $strEnvId, $tabConnections) { $tabDef = fxStaticSyncFindTableDef($strTable); $tabEnv = fxStaticSyncFindEnvDef($strEnvId); diff --git a/php/inc_fx_static_sync_config.php b/php/inc_fx_static_sync_config.php index 18c79ab..b174132 100644 --- a/php/inc_fx_static_sync_config.php +++ b/php/inc_fx_static_sync_config.php @@ -7,23 +7,13 @@ * avec host distant pour accès depuis le serveur dev. Mettre à jour ici si prod change. */ +/** + * BD client — désactivé sur le serveur dev. + * La mise en prod utilise déjà localhost via inc_settings ($arrConDatabasePreProd / Prod). + * Ne pas ouvrir de connexions vers une IP distante depuis dev (sature PHP-FPM / MySQL). + */ function fxStaticSyncClientDatabaseConfigs() { - return array( - 'client_preprod' => array( - 'label' => 'Client préprod', - 'host' => '158.69.235.152', - 'user' => 'ms1incription_bd', - 'pass' => '3+~=,y=eV)M;', - 'db' => 'ms1incription_preprod', - ), - 'client_prod' => array( - 'label' => 'Client prod', - 'host' => '158.69.235.152', - 'user' => 'ms1incription_bd', - 'pass' => '3+~=,y=eV)M;', - 'db' => 'ms1incription_prod', - ), - ); + return array(); } /** diff --git a/php/sync_static_db.php b/php/sync_static_db.php index 4b39093..cddce47 100644 --- a/php/sync_static_db.php +++ b/php/sync_static_db.php @@ -16,6 +16,8 @@ if (!fxAdminStaticSyncAllowed()) { exit; } +set_time_limit(300); + function ssEsc($str) { return htmlspecialchars((string)$str, ENT_QUOTES, 'UTF-8'); }