当前位置: 首页 > 面试题库 >

使用Python插入变量MySQL,不起作用

司马晋
2023-03-14
问题内容

我想插入变量bob,并dummyVar到我的桌前logger。现在,从我可以告诉我的所有信息中,我应该做的就是,下面是我所要做的,但是这根本不会在我的表中插入任何内容。如果我对应该写的内容进行硬编码(使用'example'它将示例写到表中,那么到目前为止我的连接和语法正确)。任何帮助将不胜感激!

conn = mysql.connector.connect(user='username', password='password!',
                              host='Host', database='database')

cursor = conn.cursor()

bob = "THIS IS AN EXAMPLE"
dummyVar = "Variable Test"

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """, (bob, dummyVar))

cursor.execute(loggit)
conn.commit()

我也尝试过这个:

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%(bob)s,(Hello))
    """, (bob))

和:

bob = "THIS IS AN EXAMPLE"
dummyVar = "Variable Test"

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """, (bob, dummyVar))

cursor.execute(loggit, (bob, dummyVar))
conn.commit()


cursor.execute(loggit, (bob, dummyVar))

conn.commit()

问题答案:

您需要将SQL语句和参数作为单独的参数传递:

cursor.execute(loggit[0], loggit[1])

或使用可变参数语法(splat
*

cursor.execute(*loggit)

您的版本尝试传入包含SQL语句的元组,并将绑定参数作为唯一参数,.execute()函数希望在其中仅查找SQL语句字符串。

通常将两者分开并可能仅将SQL语句存储在变量中:

loggit = """
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """
cursor.execute(loggit, (bob, dummyVar))


 类似资料:
  • 我试图将变量插入数据库中的一个表中,由于某种原因,insert查询没有将我的值插入到所述数据库中。我已经测试了“test_input”函数,它工作得很好,我知道连接正在工作,因为我稍后在代码中使用的一个SELECT查询正在工作。我也知道输入是在$_PostSuperGlobal中,所以我认为这可能与insert查询有关,排除了其他可能性。这个查询有什么问题吗?以下是我的php代码: 这是我的HTM

  • 第一个命令从最后一个git提交中删除第一个单词,第二个命令尝试对apiendpoint进行调用,将该变量作为调用的一部分,第三个命令只打印该变量,以确保其正常工作。请参见下面的代码 当我运行那个bash脚本时,我从服务得到一个响应,说XML中的“Item没有正确设置”,但是它确实正确地回显了正确的变量。所以我知道第一线起作用了。如果我复制curl命令并将其粘贴到bash中,用实际值替换$somet

  • 问题内容: 我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量。这是我的代码 因此,这将创建一个名为的表。变量不会保留。但是- 当我-变量结转。我对此很陌生- 因此,感谢您的帮助。 问题答案: 在您的SQL查询之后添加它-(它确实可以帮助并加快错误纠正时间) 回声 这在您的实例: 发生MySQL错误。错

  • 我只是尝试在HTML中插入从表单中提取的两个值。使用Flask和mysql.connector 这是我的index.html: 和我在python(app.py)中的行: 无论出于什么原因,我在执行第一个游标时会出现内部服务器错误,但“#”游标代码可以正常工作...请问谁能告诉我,我哪里出了问题。

  • 问题内容: 我正在使用Python中的MySQLdb模块与数据库进行交互。我遇到的情况是有一个非常大的列表(成千上万个元素),需要将它们作为行插入表中。 我现在的解决方案是生成一个大的语句作为字符串并执行它。 有没有更聪明的方法? 问题答案: 有一种更聪明的方法。 批量插入的问题在于,默认情况下启用了自动提交功能,从而导致每个语句在下一次插入可以启动之前被保存到稳定存储中。 如手册页所述: 默认情

  • 我正在尝试为java设置一个PATH环境变量。当我按照下面的方式设置变量值时,在cmd中输入“java”时,它可以很好地工作 但是对于下面的错误,“java”不被识别为内部或外部命令, 我用的是windows 8。你知道为什么上面的变量不起作用吗?