if(isset($_SESSION['id'])) {
$message=$_POST['message'];
$cid=$_POST['cid'];
$user_id=$_SESSION['id'];
$stmt=$conn->prepare("update comments set message=? where id=? and user_id=?");
$stmt->bind_param("sss",$message,$cid,$user_id);
if(!$stmt->execute()){
echo "error";
} else {
echo "success";
}
我总是获得成功,但当我进入数据库时,我发现没有任何改变。
答案 0 :(得分:1)
您正在尝试使用WHERE子句执行UPDATE。如果它实际上没有更新任何内容,它仍将被视为成功。原因!$ stmt-> execute()会发生,如果有一个sql错误,它就会失败。
那么你应该做的是检查num行是否受到影响。
if ( ! $stmt->affected_rows ) { echo 'nothing changed!'; }