REPLACE INTO should only be used if the data deletion is wanted.
[platal.git] / modules / admin.php
index 223bc80..b2aeae9 100644 (file)
@@ -973,8 +973,8 @@ class AdminModule extends PLModule
                     XDB::execute("UPDATE  aliases
                                      SET  type = 'homonyme', expire=NOW()
                                    WHERE  alias = {?}", $loginbis);
-                    XDB::execute("REPLACE INTO  homonyms (homonyme_id, uid)
-                                        VALUES  ({?}, {?})", $target, $target);
+                    XDB::execute('INSERT IGNORE INTO  homonyms (homonyme_id, uid)
+                                              VALUES  ({?}, {?})', $target, $target);
                     send_robot_homonyme($user, $loginbis);
                     $op = 'list';
                     $page->trigSuccess('Email envoyé à ' . $user->forlifeEmail() . ', alias supprimé.');
@@ -1110,8 +1110,9 @@ class AdminModule extends PLModule
                     $hide[] = $cat;
                 }
             $hide_requests = join(',', $hide);
-            XDB::query('REPLACE INTO  requests_hidden (uid, hidden_requests)
-                              VALUES  ({?}, {?})',
+            XDB::query('INSERT INTO  requests_hidden (uid, hidden_requests)
+                             VALUES  ({?}, {?})
+            ON DUPLICATE KEY UPDATE  hidden_requests = VALUES(hidden_requests)',
                        S::v('uid'), $hide_requests);
         } elseif ($hide_requests)  {
             foreach (explode(',', $hide_requests) as $hide_type)