SQL ОБНОВЛЕНИЕ и УСТАНОВКА на phpmyadmin в зависимости от значений - PullRequest
2 голосов
/ 08 января 2020

Хотелось бы узнать, почему мой SQL случай обновления не работает правильно. У меня уже есть значения:

$usrcustomerid = 110;
$search = 'face';

Ищите исправление на моем CASE в SET, потому что нет обновления, когда это SQL вызывает

SQL Код обновления

   public function UpdateUserSearch($db, $usrcustomerid, $search) {
   $stmt = $db->prepare(
     " UPDATE usr_customer
       SET search_counter = (CASE WHEN search_counter = 1 THEN 2
                                  WHEN search_counter = 2 THEN 3
                                  WHEN search_counter = 3 THEN 1 END),

           search1 = (CASE WHEN search_counter = 1 THEN $search END),
           search2 = (CASE WHEN search_counter = 2 THEN $search END),
           search3 = (CASE WHEN search_counter = 3 THEN $search END)
       WHERE usrcustomerid = $usrcustomerid "
   );

   $stmt->bindValue(':usrcustomerid', $usrcustomerid, PDO::PARAM_INT);
   $stmt->bindValue(':search', $search, PDO::PARAM_STR);
   $stmt->execute();
   $rowAffected = $stmt->rowCount();

   return $rowAffected;
 }

таблица usr_customer

1

На приведенном ниже рисунке пользовательский search_counter настроен на один и три столбца поиска не имеют значения внутри, поэтому код, основанный на моей логике c в моем CASE, должен иметь мое значение "$ search", вставленное в "search1", и обновить search_counter с 1 до 2.

2

PS Мне известно о SQL Инъекции, пожалуйста, не отвечайте с напоминанием, потому что я пытаюсь сначала заставить мой код работать.

...