mycursor.execute不会插入行

时间:2019-04-07 15:17:00

标签: python-3.x mysql-python discord.py-rewrite

我有一个discord机器人,它将接收一些用户输入并将其作为一行插入到mysql中。数据已经过验证,但是mysql库拒绝将其作为一行插入。如果我让它打印命令而不是发送命令,然后从mysql主机执行它,则插入就很好。

async def addsourceserver(ctx, name=None, description=None, ip=None, port=None, query_port=None):
    mydb = msc(ctx.guild.id)
    mycursor = mydb.cursor(buffered=True)
    try:
        # Checking if the database has been made (theres a another command to make the db
    if name == 0 or description == 0 or ip == 0 or port == 0 or query_port == 0:
        #some more checking
    mycursor.execute("select * from source_server_info")
    existingservers = len(mycursor.fetchall()) # finds the instance number it should use when inserting (primary key kind of)
    mydb=msc(ctx.guild.id)
    mycursor = mydb.cursor(buffered=False)
    mycursor.execute(f"use `{str(ctx.guild.id)}`")
    mycursor.execute(f"""INSERT INTO source_server_info (instance, name, description, ip, port, query_port) VALUES ({existingservers+1}, '{name}', '{description}', '{ip}', {port}, {query_port})""")

它应该只将行插入到mysql中。实际上它什么也没做。没有给出错误,并且在mysql上没有任何改变。我很可能是布偶,很想念一些东西,但会有所帮助。谢谢

2 个答案:

答案 0 :(得分:1)

另一种提交方式是

A

答案 1 :(得分:0)

事实证明,我需要提交更改。 我通过在连接中使用autocommit = True来完成此操作 很抱歉浪费了时间。