Bạn không cần phải thoát các biến của mình trong một câu lệnh đã chuẩn bị sẵn, thay vào đó bạn nên ràng buộc các biến của mình trước khi thực hiện câu lệnh. Ngoài ra, tên cột phải nằm trong dấu `.
$stmt = $dbConnectionW->prepare("UPDATE members SET
`fname`=?,
`sname`=?,
`gender`=?,
`nationality`=?,
`year`=?,
`dep1`=?,
`dep2`=?,
`f_pos`=?,
`f_region`=?,
`exp_comp`=?,
`exp_dep`=?,
`shareinfo`=?,
`interest`=?,
`userconfirm`=?
WHERE `confirmcode`=?");
$stmt->bind_param('ssssissssssssis',$_POST['fname'],$_POST['sname'],$_POST['gender'],...);
$stmt->execute();
Tôi chưa bao gồm tất cả các tham số ràng buộc cho ngắn gọn.
Hy vọng điều này sẽ hữu ích.