2017-03-13 42 views
0
的NodeJS每

我嘗試運行一個查詢到數據庫時我有這樣的錯誤:錯誤:缺少查詢字符串MariaDB的

Error: Missing query string 

我不明白,這可能是錯我的代碼,查詢是正確的我已經測試了它:

function getChannelCTSize(octopusMac, channelID, adcTicks, callback){ 
    var queryString = "SELECT Channels.CT_size FROM Channels INNER JOIN Octopus ON Octopus.Id=Channels.Octopus_Id WHERE Octopus.Mac = ? AND Channels.Channel_Id = ?"; 
    var filter = [octopusMac, channelID]; 

    var query = mariaDB.query({ 
     sql: queryString 
    }, filter); 

    query.on('error', function(err) { 
     if (err) { 
      console.log(err.code); 
      return 
     } 
    }) 
     .on('result', function(row) { 
      callback(result[0].CT_size, channelID, octopusMac, adcTicks); 
     }) 
     .on('end', function() { 
      mariaDB.release(); 
     }); 
} 
+0

哪個節點包用於mariadb? –

+0

我正在使用mariasql –

+0

你的意思是這個軟件包[node-mariasql](https://github.com/mscdex/node-mariasql) –

回答

1

mariasql的的query函數應使用字符串作爲第一個參數(查詢)被調用,而不是一個對象)

它應該看起來像:

var queryString = "SELECT Channels.CT_size FROM Channels INNER JOIN Octopus ON Octopus.Id=Channels.Octopus_Id WHERE Octopus.Mac = :octopusMac AND Channels.Channel_Id = :channelID"; 

var query = mariaDB.query(queryString, { octopusMac, channelID }, function(err, rows) { 
    if (err) 
    console.log(err.code); 

    callback(rows[0].CT_size, channelID, octopusMac, adcTicks); 
}) 
+0

我已經試過了,但代碼不會返回任何錯誤 –

+0

請給我更多此錯誤的信息 –

+0

您示例中的第二個參數在語法上存在拼寫錯誤。它應該是一個數組。如果你用':octopusMac'或其他任何名字準備語句,一個對象也可以工作。 –