2016-06-18 4 views
1

Die folgende Funktion führt die $stmt und Drucken erfolgreich durch, aber es zeigt Null Zeilen wurden aktualisiert. Wenn ich den SQL manuell ausführe, wird die Datenbank aktualisiert. Aber es wird nicht vom PHP-Code unten aktualisiert. Fehle ich etwas?mysqli_prepare Statment-Zeilen werden nicht aktualisiert

function updateLastActive($link, $id) { 

    $stmt = mysqli_prepare($link,"update `account` set `lastActive` =now() where id = ?"); 
    mysqli_stmt_bind_param($stmt, 'i', $id); 
    if(mysqli_stmt_execute($stmt)){ 
     $num_of_rows = $stmt->num_rows; 
     echo 'success'; 
     echo $num_of_rows; 
     return 1; 
    }else{ 
     return 0; 
    }} 
+0

Was ist Fehlermeldung? –

+0

Ist $ ID in Ihrem Code gültig? –

+0

try $ stmt-> affected_rows oder mysqli_affected_rows ($ stmt) – JYoThI

Antwort

1

mysqli_affected_rows()

Gibt die Anzahl der Zeilen, die von der letzten INSERT, UPDATE betroffen, REPLACE oder DELETE-Abfrage.

Verwenden mysqli_affected_rows() statt $stmt->num_rows

if (mysqli_stmt_execute($stmt)) { 
     $num_of_rows = mysqli_affected_rows($link)); 
     echo 'success'; 
     echo $num_of_rows; 
     return 1; 
    } else { 
     return 0; 
    }