Py学习  »  DATABASE

如何将列表保存到mysql数据库中?

Razzer • 4 年前 • 1479 次点击  

我想把一个包含不和谐邀请的列表保存到我的数据库中。但每次我运行这段代码时,get在数据库中只保存了1项。我试图打印邀请者ID以检查他是否只运行一个项目,但他为每个项目运行代码。那怎么了?为什么get只有一个项目保存到数据库中?

            for invite in invites:

                if invite.inviter is None:
                    continue

                if not ctx.author.guild.get_member(int(invite.inviter.id)):
                    continue

                if int(invite.uses) == 0:
                    continue

                await cursor.execute("SELECT * FROM guild_invite_count WHERE guild_id = %s AND user_id = %s IS NOT NULL", (ctx.author.guild.id, invite.inviter.id))
                find_user = await cursor.fetchone()
                if find_user:
                    await cursor.execute("UPDATE guild_invite_count SET real_count = real_count + %s, total_count = total_count + %s WHERE guild_id = %s AND user_id = %s", (int(invite.uses), int(invite.uses), ctx.author.guild.id, invite.inviter.id))
                else:
                    await cursor.execute("INSERT INTO guild_invite_count (guild_id, user_id, real_count, total_count) VALUES (%s, %s, %s, %s)", (ctx.author.guild.id, invite.inviter.id, int(invite.uses), int(invite.uses)))
                print(invite.inviter.id)
                await mydb.commit()

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129380
文章 [ 1 ]  |  最新文章 4 年前
snakecharmerb
Reply   •   1 楼
snakecharmerb    4 年前

这个SQL

SELECT * FROM guild_invite_count WHERE guild_id = %s AND user_id = %s IS NOT NULL

这在逻辑上是不正确的。 AND user_id = %s IS NOT NULL 减少到 AND user_id = true (除非参数为null)。就这么做吧

SELECT * FROM guild_invite_count WHERE guild_id = %s AND user_id = %s