2017-08-10 48 views
0

我想從sqlite3數據庫中獲取所有/多於一行的數據,我之前輸入並確保它(數據)存在。隨着db作爲數據庫對象,我的嘗試是這樣的:如何使用node-sqlite3選擇/獲取所有行?

db.get 
    (
     'SELECT * FROM my_table', 
     (err, rows) => 
     { 
      if(rows && err === null) 
      { 
       console.log(rows); 
      } 
      else 
      { 
       console.log('Error', err); 
      } 
     } 
    ) 

上面總是返回一個對象,具有1行數據的。

回答

2

這裏的問題是db.get()將只返回結果集的第一行。來自documentation

運行帶有指定參數的SQL查詢,然後用第一個結果行調用回調。

如果你想返回整個結果集,使用db.all()代替:

db.all("SELECT * FROM my_table", function(err, rows) { 
    rows.forEach(function (row) { 
     console.log(row.col1, row.col2); // and other columns, if desired 
    }) 
}); 

您還可以使用db.each()這裏:

db.each("SELECT * FROM my_table", function(err, row) { 
    console.log(row.col1, row.col2); // and other columns, if desired 
}); 
+0

謝謝! db.all做的工作,我應該更多地關注文檔。 –

相關問題