/**
  * Retourne les champs dont la valeur est différentes entre 2 enregistrement<br>
  * en base de données.
  * @param string $paramTableName1 nom de table de l'enregistrement N°1
  * @param string $paramKeyValueTable1 valeur de la clef de l'enregistrement N°1
  * @param string $paramKeyValueTable2 valeur de la clef de l'enregistrement N°2
  * @param string $paramTableName2 nom de table de l'enregistrement N°2 (optionnel)
  * @return array Tableau contenant la liste des noms des champs différents
  */
 public static function getArrayFieldsNameForDiffRecords($paramTableName1, $paramKeyValueTable1, $paramKeyValueTable2, $paramTableName2 = NULL)
 {
     if ($paramKeyValueTable2 == NULL) {
         return FALSE;
     }
     /**
      * Si la seconde table n'a pas été communiquée, on considère que les 
      * 2 clefs font référence à la même table, la première.
      */
     if ($paramTableName2 == NULL) {
         $paramTableName2 = $paramTableName1;
     }
     /**
      * Récupération de l'enregistrement n°1
      */
     $fieldsArray1 = self::convertSqlStatementFirstRowToArray(self::queryPDO('SELECT ' . $paramTableName1 . '.* FROM ' . $paramTableName1 . ' WHERE ' . DatabaseDescription::getTableKeyName($paramTableName1) . '=' . $paramKeyValueTable1));
     /**
      * Récupération de l'enregistrement n°1
      */
     $fieldsArray2 = self::convertSqlStatementFirstRowToArray(self::queryPDO('SELECT ' . $paramTableName2 . '. FROM ' . $paramTableName2 . ' WHERE ' . DatabaseDescription::getTableKeyName($paramTableName2) . '=' . $paramKeyValueTable2));
     /**
      * Construction du tableau des différences
      */
     return DatabaseOperation::getArrayFieldsNameForDiffFieldsValue($fieldsArray1, $fieldsArray2);
 }