/** * Description : Permet l'execution des fichiers sql non joués * @simulation : true pour ne pas faire les actions en bdd */ public static function ExecutePatch($simulation = false) { $newFilesForUpdate = Update::getNewPatch(); //si aucun nouveau fichier de mise à jour à traiter @return : false if (count($newFilesForUpdate) == 0) { return false; } if (!$simulation) { foreach ($newFilesForUpdate as $file) { // récupération du contenu du sql $sql = file_get_contents(dirname(__FILE__) . Update::FOLDER . '/' . $file); $conn = new MysqlEntity(); //on sépare chaque requête par les ; $sql_array = explode(";", $sql); foreach ($sql_array as $val) { $val = preg_replace('#([-].*)|(\\n)#', '', $val); if ($val != '') { //remplacement des préfixes de table $val = str_replace('##MYSQL_PREFIX##', MYSQL_PREFIX, $val); $result = mysqli_query($val); $ficlog = dirname(__FILE__) . Update::FOLDER . '/' . substr($file, 0, strlen($file) - 3) . 'log'; if (false === $result) { file_put_contents($ficlog, date('d/m/Y H:i:s') . ' : SQL : ' . $val . "\n", FILE_APPEND); file_put_contents($ficlog, date('d/m/Y H:i:s') . ' : ' . mysqli_error() . "\n", FILE_APPEND); } else { file_put_contents($ficlog, date('d/m/Y H:i:s') . ' : SQL : ' . $val . "\n", FILE_APPEND); file_put_contents($ficlog, date('d/m/Y H:i:s') . ' : ' . mysqli_affected_rows() . ' rows affected' . "\n", FILE_APPEND); } } } unset($conn); } $_SESSION = array(); session_unset(); session_destroy(); } // quand toutes les requêtes ont été executées, on insert le sql dans le json Update::addUpdateFile(array($newFilesForUpdate)); return true; }