第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

當(dāng)我看到該列存在時(shí),SQLite 錯(cuò)誤“沒有這樣的列”

當(dāng)我看到該列存在時(shí),SQLite 錯(cuò)誤“沒有這樣的列”

湖上湖 2022-12-18 18:39:20
這里的背景故事是我正在開發(fā) Discord 機(jī)器人。要求的功能之一是讓它侮辱。我認(rèn)為讓用戶能夠通過 SQLite 3 數(shù)據(jù)庫(特別是 better-sqlite3)添加侮辱會很有趣,在這樣做的過程中,我還想跟蹤每個(gè)侮辱的最近使用情況(這是為了將來在“insultinfo”類型的命令中使用)。我添加了一個(gè)名為“l(fā)astUsed”的 DATETIME 列。當(dāng)添加新的侮辱時(shí),我的 insultadd 命令能夠?qū)懭氪肆?。問題是當(dāng)我調(diào)用 insult 命令時(shí),它應(yīng)該說出侮辱然后用當(dāng)前日期更新 lastUsed 字段。粘貼下面的代碼。問題是我收到一個(gè)錯(cuò)誤,提示“SQLiteError:沒有這樣的列:”,然后它打印日期值,即使我正在嘗試更新 lastUsed 列,但我不知道如何解決這個(gè)問題。問題必須在 db.prepare 語句中,我只是沒有看到我需要做些什么來修復(fù)它。execute(msg, args) {    const SQLite = require("better-sqlite3");    const db = new SQLite('./userinputs.sqlite');    // Check if the table "userinputs" exists and has content from this guild.    const table = db.prepare(`SELECT count(*) FROM userinputs WHERE (guild = ${msg.guild.id} OR guild = 'Global') AND type = 'insult';`).get();    if (!table['count(*)']) {        return msg.channel.send("I don't have any insults yet");    }    var date = new Date();    const rawInsult = db.prepare(`SELECT * FROM userinputs WHERE type = 'insult' AND (guild = ${msg.guild.id} OR guild = 'Global') ORDER BY RANDOM() LIMIT 1;`).get();    const insult = rawInsult['content'];    const insultID = rawInsult['row'];    if (args[0]) {        var target = args[0];    } else {        var target = msg.author.username;    }    if (insult.includes('{}')) {        var finalInsult = insult.replace('{}', target);    } else {        var finalInsult = target + ' ' + insult;    }    msg.channel.send(finalInsult);    db.prepare(`UPDATE userinputs SET lastUsed = "${date}" WHERE row = ${insultID};`).run();},
查看完整描述

1 回答

?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊

我想我明白了。我最終使用了 date.toString() 并且它似乎已經(jīng)完成了工作。更新 db.prepare 語句后我收到的錯(cuò)誤消息表明它沒有將該日期變量視為它可以使用的東西,因此 .toString() 解決方法。我必須對此進(jìn)行測試,看看這是否會影響我對該列進(jìn)行排序的能力,因?yàn)檫@對我來說仍然是一個(gè)全新的事物,但至少命令本身正在運(yùn)行并且數(shù)據(jù)庫表正在更新。


如果有人看到我在這里的方式可能是愚蠢的,我愿意接受更多反饋。


更新:經(jīng)過進(jìn)一步測試,設(shè)置 date = Math.floor(new Date() / 1000) 在我的案例中效果更好。


查看完整回答
反對 回復(fù) 2022-12-18
  • 1 回答
  • 0 關(guān)注
  • 80 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號