致命错误:未捕获错误:在bool中调用成员函数execute()

时间:2019-07-19 13:35:51

标签: php mysql pdo

我在执行更新查询时遇到问题。

我已经尝试使用prepare语句和mysqli_prepare,使用和不使用“:”更改数组键

// db连接

class dbconnection{

    function connection(){
        //dbconnection
        $host="localhost";
        $un="root";
        $pw="";
        $db="mygym";
        //connection
        $con= new mysqli($host,$un,$pw,$db);
        return $con;


    }
}
$conobj=new dbconnection(); //To create an object
$con=$conobj->connection(); //To get connection string
$GLOBALS['con']=$con; 

//数据数组

 $dataAr = [
        ':fname' => $firstName,
        ':lname' => $lastName,
        ':email' => $email,
        ':gender' => $gender,
        ':dob' => $dob,
        ':nic' => $nic,
        ':phone' => $phone,
        ':address' => $address,
        ':type' => $user_type,
        ':img' => $imgName,
        ':lmd' => $lmd,
        ':id' => $staffID
    ];

//更新查询

 public static function updateStaff($dataAr){
        // var_dump($dataAr); exit;
        $con=$GLOBALS['con']; 
        $sql = "UPDATE staff SET first_name=:fname, last_name=:lname, email=:email, gender=:gender, dob=:dob, nic=:nic, telephone=:phone, address=:address, staff_type=:type, image=:img, lmd=:lmd WHERE staff_id=:id";
        $result = $con->prepare($sql)->execute($dataAr);
        return $result;
        // $stmt= $con->prepare($sql);
        // $stmt->execute($dataAr);       
    }

如果查询成功,我希望得到TRUE作为结果 这是我收到的错误消息错误消息是致命错误:未捕获的错误:在C:\ xampp \ htdocs \ mygym \ model \ staff.php:70的bool上调用成员函数execute():堆栈跟踪:#0 C :\\ xampp \ htdocs \ mygym \ controller \ staffController.php(345):Staff :: updateStaff(Array)#1 {main}放在第70行的C:\ xampp \ htdocs \ mygym \ model \ staff.php中

0 个答案:

没有答案