【问题标题】:return prepared statement error in json array在 json 数组中返回准备好的语句错误
【发布时间】:2016-04-12 21:57:54
【问题描述】:

我试图了解是否有办法在 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);
}

【问题讨论】:

    标签: php json mysqli


    【解决方案1】:

    如果 SQL 失败,mysqli_stmt_affected_rows 将返回 -1,而不是 0。尝试改用这个 if 语句。

    if(mysqli_stmt_affected_rows($stmt2) <= 0){
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2015-07-13
      • 2012-01-31
      • 2014-06-18
      相关资源
      最近更新 更多