2017-06-22 66 views
0

我正在研究這個小應用程序nba_manager_simulator,並且我堅持在團隊和玩家之間創建合同。 合同是一張桌子,一個團隊另一個,另一個是玩家三分之一(合同有一個團隊,一個玩家,兩個日期(開始,結束)和一個小數點(工資)多表更新sailsjs mysql

問題是:當我創建新的合同,它不合同ID添加到播放器

我試圖通過使查詢像這樣添加它:

Player.query(update player set fk_contract = $1 where player.id = $2, [contract.id][contract.fk_player]...) 

,但它告訴我,$ 2是未知

什麼是正確的'帆'方式來做到這一點? 什麼是「查詢」方式? (我想知道更多關於Sails中的SQL查詢)

謝謝!

+0

的MySQL查詢使用''作爲佔位符,而PostgreSQL的查詢使用'$ 1,$ 2'? [示例](http://sailsjs.com/documentation/reference/waterline-orm/models/query#?example) – Sangharsh

+0

謝謝,我注意到,但我不知道如何把它與多個參數,我認爲使用無論如何,$ 1,$ 2 ......都可以工作。 –

回答

0

我認爲你需要在同一陣列中同時傳遞參數,而不是單獨的,就像這樣:

let sql = 'update player set fk_contract = $1 where player.id = $2' 
Player.query(sql, [contract.id, contract.fk_player]...) 
+0

好的,我在這裏有3個錯誤,首先使用$ 1而不是?正如Sangharsh所指出的那樣,第二我使用「contract.fk_player.id」而不是簡單的fk_player,第三,使用多個數組......現在它工作得很好。多謝你們! –