2017-06-22 34 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,第三,使用多个数组......现在它工作得很好。多谢你们! –