我正在尝试使用node JS读取我的MySql数据库。我实际上已经在另一个文件中做了,在那里它工作得很好!我正在使用:
console.log('GuildId: ' + guildId);
let MemberCountChannel = new Map();{
connection.promise().query( guildId,
`SELECT memberCountId FROM GuildConfigurable WHERE guildId = '${guildId}'`
).then(result => {
MemberCountChannel.set(guildId, result[0][0].memberCountId);
MemberCountChannelId = MemberCountChannel.get(guildId);
console.log(MemberCountChannelId);
我知道GuildId是对的,因为它把它记录在我代码的开头。在执行该代码时,我会得到以下信息:
GuildId: 776182101337833474
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '776182101337833474' at line 1
at PromiseConnection.query (/home/ubuntu/discord-bot-v2/node_modules/mysql2/promise.js:92:22)
at Timeout._onTimeout (/home/ubuntu/discord-bot-v2/counters/member-counter.js:20:26)
at listOnTimeout (node:internal/timers:556:17)
at processTimers (node:internal/timers:499:7) {
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '776182101337833474' at line 1"
}
我已经尝试将“${guildId}”更改为仅为公会ID:
console.log('GuildId: ' + guildId);
let MemberCountChannel = new Map();{
connection.promise().query( guildId,
`SELECT memberCountId FROM GuildConfigurable WHERE guildId = '776182101337833474'`
).then(result => {
MemberCountChannel.set(guildId, result[0][0].memberCountId);
MemberCountChannelId = MemberCountChannel.get(guildId);
console.log(MemberCountChannelId);
但我得到了同样的输出。我的数据库表如下所示:
mysql> SELECT * FROM GuildConfigurable;
+--------------------+-----------+----------------+---------------+----------------+
| guildId | cmdPrefix | radioChannelId | memberCountId | AutoStartRadio |
+--------------------+-----------+----------------+---------------+----------------+
| 776182101337833474 | < | N/A | N/A | N |
| 791351561182904381 | < | N/A | N/A | N |
| 804867729404067904 | < | N/A | N/A | N |
+--------------------+-----------+----------------+---------------+----------------+
3 rows in set (0.00 sec)
键入时:
SELECT memberCountId FROM GuildConfigurable WHERE guildId = 776182101337833474;
or
SELECT memberCountId FROM GuildConfigurable WHERE guildId = '776182101337833474';
在mysql控制台中,我得到了所需的输出:
SELECT memberCountId FROM GuildConfigurable WHERE guildId = 776182101337833474;
+---------------+
| memberCountId |
+---------------+
| N/A |
+---------------+
1 row in set (0.01 sec)
你知道为什么我会犯这个错误吗?因为我很确定没有语法错误...
EDIT:
我已经完全重新安装了mysql2和mysql-server,并且在另一个文件中使用了基本相同的脚本来获取cmdprefix:
var guildId = message.guild.id;
getMemberCount(client, guildId);
let guildCommandPrefix = new Map();
connection.promise().query(
`SELECT cmdPrefix FROM GuildConfigurable WHERE guildId = '${message.guild.id}'`
).then(result => {
guildCommandPrefix.set(message.guild.id, result[0][0].cmdPrefix);
prefix = guildCommandPrefix.get(message.guild.id);
这个很好用...
尝试在SELECT语句的末尾添加分号:
connection.promise().query( guildId,
`SELECT memberCountId FROM GuildConfigurable WHERE guildId = '776182101337833474';`
).then(result => {
MemberCountChannel.set(guildId, result[0][0].memberCountId);
MemberCountChannelId = MemberCountChannel.get(guildId);
问题内容: 我正在使用xampp控制面板,然后从那里开始apache和mysql的过程。然后我转到mysql工作台,服务器状态似乎正常,这是一些信息 然后每次当我尝试为我的虚拟架构添加外键时: 我收到以下错误 那么,我该怎么做才能使xampp开始在mariaDb上使用mysql语法? 或者,如果我对问题的理解不正确,那么我应该怎么做,以便在使用xampp时不必再次面对此类问题? 问题答案: 问题是
有时,项目中的许多广为流传的惯例和协定变得非常重要,你需要记录下来。为了保证这种文档的正统性,要清楚的表明这些内容基于邮件列表的讨论,并已经形成协定开始生效。随着你的编写,应当引用邮件列表归档中的相关讨论,对于任何不能确定的要点,要重新询问并确认。文档中不应当包含任何出其不意的东西:它不应当是协议的来源,而只是对于协议的描述。当然,如果它足够成功,人们会开始引用它来作为自己权利的来源,但是这只是说
问题内容: 这个MySQL脚本会安装多个触发器。 它在一台运行MySQL 5.0.51b-community的机器上工作。在另一台运行MySQL 14.12 Distrib 5.0.45的计算机上,对于redhat-linux-gnu(i386),它会失败,并显示此错误消息,这似乎与; 有关;句法 : 第272行的错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本相
自1个月以来,我们一直在使用Flyway,没有遇到任何问题。 但是,今天我尝试添加一个很长(超过1500行)的新迁移脚本,遇到了一个奇怪的MySQL语法错误。 我在MySQL Workbench中打开了这个脚本,没有报告语法错误,脚本执行没有错误。 这个名为V10012__insert-acceptance-testing-event-moment-passed.sql的脚本包含以下说明。 插入语
问题内容: 我有两个mysql表。 第一个称为“选择”,由id,user_id和widget_id字段组成。 另一个称为“小部件”,包括widget_id等几项内容。 我创建了一个过滤器,以便用户可以显示他/她选择的小部件,也可以显示他/她没有选择的小部件。对于他选择的人,我使用以下方法: 但是,我不知道如何显示他/她没有选择的内容。这不起作用(显示所有内容): 我该怎么做呢? 问题答案: 使用N
问题内容: 我在许多JavaScript简介中都读了很多。我只是不明白。我一直认为对象是具有方法和属性的东西。我了解数组,因为它具有键值对。“字符串”或“数字”或“函数”怎么样?上面列出的这些东西对我来说就像是功能。这意味着您输入了一些东西,然后得到了一些东西。您实际上并没有获得访问属性或其他任何内容。在数组或“对象”列表中没有使用点符号。 是否有人用点符号编写每个方法的示例示例,这些示例的方法和