2016-04-12 17 views
0

Ich versuche zu verstehen, wenn es eine Möglichkeit gibt, eine vorbereitete Anweisung mysqli Fehler in JSON zurückzugeben. Unten ist mein Code. Der Code gibt das form_pass in dem Array zurück, obwohl das SQL nicht tatsächlich funktioniert.zurück vorbereitete Anweisung Fehler in JSON-Array

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); 

Ich habe versucht, so etwas wie

if(!mysqli_stmt_execute($stmt2)){ 
$return_arr['error_msg'] = mysqli_stmt_error($stmt2); 
} 

und

if(mysqli_stmt_error($stmt2)){ 
$return_arr['error_msg'] = mysqli_stmt_error($stmt2); 
} 

Antwort

0

Verwendung Wenn die SQL ausfällt, mysqli_stmt_affected_rows wird -1 zurückkehren, nicht 0. Verwenden Sie stattdessen diese if-Anweisung.

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