根据值在phpmyadmin上更新和设置SQL

根据值在phpmyadmin上更新和设置SQL,php,mysql,sql,sql-update,case,Php,Mysql,Sql,Sql Update,Case,想知道为什么我的SQL更新案例无法正常运行。 我已经有了价值观: $usrcustomerid = 110; $search = 'face'; 正在查找集合中我的案例的修复程序,因为触发此SQL时没有更新 SQL更新代码 public function UpdateUserSearch($db, $usrcustomerid, $search) { $stmt = $db->prepare( " UPDATE usr_customer SET sea

想知道为什么我的SQL更新案例无法正常运行。 我已经有了价值观:

$usrcustomerid = 110;
$search = 'face';
正在查找集合中我的案例的修复程序,因为触发此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\U客户

在下图中,用户的搜索计数器设置为1,三个搜索列中没有值,因此根据我的逻辑,代码应该在“search1”中插入我的“$search”值,并将搜索计数器从1更新为2


PS我知道SQL注入,请不要用提示回答,因为我正在尝试首先让我的代码工作。

这不是SQL问题,而是PHP问题。在SQL查询中替换的值应以:而不是$作为前缀

     " 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 "
见: