2017-06-22 1 views
0

Je travaille sur cette petite application nba_manager_simulator, et je suis coincé en train de créer des contrats entre une équipe et un joueur. Le contrat est une table, équipe une autre, et un joueur un tiers (le contrat a 1 équipe, 1 joueur, 2 dates (début, fin) et 1 décimal (salaire)mise à jour de plusieurs tables sailsjs mysql

Le problème est: quand je crée un nouveau contrat, il ne marche pas ajouter l'identifiant de contrat au joueur

Je suis en train d'ajouter en faisant une requête comme ceci:.

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

mais il me dit que 2 $ est inconnue

.

Quelle est la bonne façon de faire les 'Voiles'? Et quelle est la "requête" façon? (J'aimerais en savoir plus sur les requêtes SQL dans Sails)

Merci!

+0

requêtes MySQL utilisent '' comme espace réservé alors que les requêtes PostgreSQL utilisent '$ 1, $ 2'?. [Exemples] (http://sailsjs.com/documentation/reference/waterline-orm/models/query#?example) – Sangharsh

+0

Merci, j'ai remarqué cela, mais je ne savais pas comment le mettre avec plusieurs paramètres, et je pensais que l'aide 1 $, 2 $ ... fonctionnerait de toute façon. –

Répondre

0

Je pense que vous devez passer les deux paramètres dans le même tableau, pas ceux séparés, comme ceci:

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

D'accord j'ai eu 3 erreurs ici,: d'abord en utilisant 1 $ au lieu de? comme indiqué par Sangharsh, deuxième j'ai utilisé "contrat.fk_player.id" au lieu de simplement fk_player, et troisièmement, en utilisant plusieurs tableaux ... maintenant cela fonctionne très bien. Merci les gars! –