Sie müssen Ihre Variablen in einer vorbereiteten Anweisung nicht maskieren, sondern sollten Ihre Variablen binden, bevor Sie die Anweisung ausführen. Auch die Spaltennamen sollten innerhalb von ` Zeichen stehen.
$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();
Der Kürze halber habe ich nicht alle gebundenen Parameter eingefügt.
Hoffe das hilft.