2016-12-21 9 views
1

私は文があります。その後、削除更新/削除の実行中に影響を受ける行が0を返すのはなぜですか?

UPDATE infotbl SET name = 'Alex Johnes', phone = '999 34356063' WHERE id = 1; 

DELETE FROM infotbl WHERE id = 1; 

私は行を更新、削除するとき、私は、正常に挿入しました

INSERT INTO infotbl(name, phone) VALUES('Alex', '9999999'); 

、これを更新しますMySQLでは変更されています。 Nodeのコードは影響を受ける行= 0を返します。なぜですか?

function deleteCustomer (id, callback) { 
     db.connection.query("DELETE FROM infotbl WHERE id=?", id, (err, result) => { 
      if (err) throw err; 
      if (result.affectedRows > 0) 
       callback(true); 
      else 
       callback(false); 
     }); 
    }; 

と更新機能:データベースが正常に実行さ

function updateCustomer(id, name, phone, callback) { 
    db.connection.query("UPDATE infotbl SET name = ?, phone = ? WHERE id = ?;", [name, phone, id], (err, result) => { 
     if (err) throw err; 
       if (result.affectedRows > 0) 
        callback(true); 
       else 
        callback(false); 
}); 
} 

なぜノードリターン0影響を受ける行を更新し、ノードに削除する私の機能はありますか?

+0

'result'オブジェクトを使用してみてください。使用しているdbドライバが更新され、いくつかの異なるプロパティ名によって 'affectedRows'が返されている可能性があります。 –

答えて

1

最も可能性の高い説明は、UPDATEステートメントとDELETEステートメントの条件を満たす行がないことです。つまり、idの値が1のローはありません。

条件が1つ以上の行と一致する場合、UPDATEはゼロ行に影響を及ぼしますが、行に適用された変更は「変更なし」になります。つまり、変更中の列にはすでに値が割り当てられています。

正常に実行されますが、ゼロ行に影響を与えるUPDATEまたはDELETEは、引き続き正常に実行されます。

+0

ありがとうございます!それは仕事です! –

関連する問題