Example #1
0
 /**
  * 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;
 }