2017-09-05 8 views
1

まず最初に、私は既に行ったことを伝えたいと思います。すべて重複の質問です。そこで提案された変更を試みました。限り、今私はすでにnum_rowsnum_rows()へ を変更し、store_result();を使用してaffected_rows()を使用してみましたがPHP-mysqli-> num_rowsは常に0を返します。Prepared statements

はまた、私は、私は上記のコメントで述べたように、

$conn->autocommit(false); 
if ($sucess){ 
    $stmt2 = $conn->prepare("UPDATE e_eventqueue SET e_urlfil=? WHERE e_id=? 
AND u_id=?"); 
    $stmt2->bind_param("iis",$e_urlfil,$e_id,$u_id); 

    if($stmt2->execute()){ 
     $stmt2->store_result(); 
     echo "true"; 
     echo $stmt2->num_rows; // <- this always return 0 even when its not 
     $stmt2->close(); 
     $conn->commit(); 
    } 
else{ 
     $conn->rollback(); 
    echo "rollback"; 
    } 

} 
+0

のためであるあなたは、実際には何も更新していますか? MySQLは、 'UPDATE'の結果が変更されなかった場合に影響を受ける行を報告することができます。 – Phil

+1

更新クエリの場合affected_rowsを確認する必要があります。 not num_rows – JYoThI

+1

@Philはいphpmyadminで表示される毎回異なる値を更新しています – GeekWithGlasses

答えて

2

第一の結果セット

http://php.net/manual/mysqli-stmt.num-rows.php

戻り、最後に実行されたステートメントによって変更、削除、または挿入された:をするためにあなたはaffected_rowsをチェックする必要があります。ないnum_rows

第二:、クエリが正常に実行されますが、データに変化はそれがreturn 0することを意味していない場合は、この$row_count= $stmt2->affected_rows;のようにチェックを実行します。

if($stmt2->execute()){ 

    echo $stmt2->affected_rows; 
} 

Affected_rows:

Affected_rowsがinsert,update,delete

NUM_ROWSのためにされています

NUM_ROWS select

2

を把握マニュアルを確認することができない他のいくつかの問題があるかもしれないと思う​​

store_result();を呼び出しますhttp://php.net/manual/mysqli-stmt.affected-rows.php

Retur nsの行の合計数は、文の行数が

関連する問題