我在执行更新查询时遇到问题。
我已经尝试使用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中>