我试图了解是否有办法在json中返回准备好的语句mysqli错误。以下是我的代码。即使sql实际上没有工作,代码也会返回数组中的form_pass。
if($pass){
$stmt2 = mysqli_stmt_init($con);
$sql = 'UPDATE `users` SET `fname` = ?,`lname` = ?,`email` = ?,`username` = ?,`password` = ?,`active` = ?,`enc` = ? WHERE `id` = ?';
if(mysqli_stmt_prepare($stmt2,$sql)){
mysqli_stmt_bind_param($stmt2,'sssssiii',$fname,$lname,$email,$username,$password,$active,$ran,$id);
mysqli_stmt_execute($stmt2);
if(mysqli_stmt_affected_rows($stmt2) == 0){
$return_arr['error_msg'] = mysqli_stmt_error($stmt2);
} else {
$return_arr['form_pass'] = 'true';
}
}
}
print json_encode($return_arr);
我尝试过使用像
这样的东西if(!mysqli_stmt_execute($stmt2)){
$return_arr['error_msg'] = mysqli_stmt_error($stmt2);
}
和
if(mysqli_stmt_error($stmt2)){
$return_arr['error_msg'] = mysqli_stmt_error($stmt2);
}
答案 0 :(得分:0)
如果SQL失败,mysqli_stmt_affected_rows
将返回-1
,而不是0
。请尝试使用此if语句。
if(mysqli_stmt_affected_rows($stmt2) <= 0){