在mySQL表中插入一组卡片,控制台没有错误

问题描述 投票:0回答:1

我希望我不会问一个已被问过的问题。我试着四处寻找如何做我正在尝试的一些好步骤,这是我搜索的最佳结果。

这需要对我脑子里的东西进行一些解释。

所以,我正在为我的不和谐服务器制作纸牌游戏。我正在使用“卡牌”([https://www.npmjs.com/package/card-deck]]来处理这些牌。我已经将许多卡保存到另一个表中的同一个数据库中(所以我没有使用卡构造函数)。这种纸牌游戏有多个堆叠,这些纸牌在从主甲板发出后将被移动到另一个地方;手,丢弃桩,主甲板,能量堆,激活卡等....我的逻辑是装载主甲板,然后允许玩家从甲板上拉卡,进入他们的手,能量堆,丢弃堆等...通过命令。

我为每个玩家的每个堆创建了一个不同列的数据库(deckAcards,deckBcards,handA,handB等等)。我有一个测试卡,里面有少量卡片。我可以检索该套牌(保存在数据库中的不同表中)而不会出现问题。但是,当我尝试将所述数组保存到表的正确列中时,我被卡住了。我甚至不确定这是如何设置这种项目。

这是我的代码,我尝试将从数据库的一个表中检索到的卡片阵列插入到设置了该游戏的所有信息的表中。从数据库中检索到的结果卡片组在此处代码的最顶部保存为“arr_cardname”。

var loadeddeck = arr_cardname;

        if (message.author.id == playerAid) {

          message.channel.fetchMessages().then(messages => {
          const botMessages = messages.filter(message => message.author.bot);
          var brawlID = botMessages.last().content.slice(-8)
          var brawlname = `brawlID${brawlID}`

            var maindeckA = new Deck(loadeddeck)

            var playerAdeck = JSON.stringify(arr_cardname)

            console.log(playerAdeck)

            sql = `INSERT INTO ${brawlname} (deckAname, deckAcards) VALUES ("${deckname}", "${playerAdeck}")`;
            con.query(sql, function(err, rows, fields) {
                if (err) throw err; 
                else {
                    message.channel.send(`${deckname} and play areas loaded for Player A!`)
            }
            })
        })

          //----------------------------------------------------------------------------------------
          } else if (message.author.id == playerBid) {
         //Make a copy of the above block for Player B

当我运行上面的代码时,我没有打印到控制台的错误,没有输入到我指定的表中。

我的另一个问题是,在这张桌子上放置甲板将不允许我使用由“卡片组”制成的甲板物体。主要是,我只是希望能够存储,访问,修改卡片的布局,并在玩游戏时将它们从不同的堆中移出。 (绘制一张卡片将卡片中的顶部卡片移动到手中,丢弃卡片将卡片从手中移动到丢弃堆上等)我原本尝试使用JSON文件,但我读过它很容易搞砸或损坏如果经常访问和修改,所以我不想冒这个风险,而是选择了数据库。

关于我应该如何进行这项工作的任何建议,更正或建议将是非常好的和赞赏,因为我已经旋转我的车轮好几天了!谢谢!

mysql node.js discord.js
1个回答
0
投票

您没有正确处理错误:

...
sql = `INSERT INTO ${brawlname} (deckAname, deckAcards) VALUES ("${deckname}", "${playerAdeck}")`;
con.query(sql, function(err, rows, fields) {
    if (err) throw err; 
    else {
        con.query(sql)
        message.channel.send(`${deckname} and play areas loaded for Player A!`)
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.