首页 > 解决方案 > PDO 在单个函数中更新多行

问题描述

我有这个函数,我试图执行多个更新语句,但它一直抛出这个错误,但它只执行第一个查询,如果 $this->status_name 和 $this->status_state 都大于 1。

function update(){
        if (strlen($this->status_name)>1) {
           // update query
            $query = "UPDATE
                        " . $this->table_name . "
                    SET
                        status_name = :status_name
                    WHERE
                        status_id = :status_id";
          
            // prepare query statement
            $stmt = $this->conn->prepare($query);
          
            // sanitize
            $this->status_name=htmlspecialchars(strip_tags($this->status_name));
          
            // bind new values
            $stmt->bindParam(':status_name', $this->status_name);
            $stmt->bindParam(':status_id', $this->status_id);
          
            // execute the query
            if($stmt->execute()){
                return true;
            }
          
            return false;
        }

        if (strlen($this->status_state)>1) {
           // update query
            $query = "UPDATE
                        " . $this->table_name . "
                    SET
                        status_state = :status_state
                    WHERE
                        status_id = :status_id";
          
            // prepare query statement
            $stmt = $this->conn->prepare($query);
          
            // sanitize
            $this->status_state=htmlspecialchars(strip_tags($this->status_state));
          
            // bind new values
            $stmt->bindParam(':status_state', $this->status_state);
            $stmt->bindParam(':status_id', $this->status_id);
          
            // execute the query
            if($stmt->execute()){
                return true;
            }
          
            return false;
        }
    }

如何使用 PDO 在单个函数中成功运行多个语句?

标签: phpmysqlpdo

解决方案


推荐阅读