gpt4 book ai didi

mysql - python mysql insert syntax error 当只有一个变量

转载 作者:可可西里 更新时间:2023-11-01 08:10:17 25 4
gpt4 key购买 nike

我正在使用 Python 2,如果这对这个问题很重要的话。我正在玩 mysql.connector 作为学习练习,并构建了一些工作插入,然后遇到了一个奇怪的(对我来说)问题——我确定我做错了一些简单的事情。我正在为几个表格插入两列,类似于下面的第一个示例;当我遇到只插入一列的情况时,出现语法错误。

为什么像这样的语法可以正常工作的任何想法:

    query_publisher =   "INSERT INTO publisher (name, name2) "\
"VALUES (%s, %s) " \
"ON DUPLICATE KEY UPDATE PUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)"
args_publisher = (publisher_name, publisher_name2)

然而,我真正想做的语法却抛出了一个语法错误:

    query_publisher =   "INSERT INTO publisher (name) "\
"VALUES (%s) " \
"ON DUPLICATE KEY UPDATE PUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)"
args_publisher = (publisher_name)

[编辑]:在这两种情况下,我都执行此操作:

        cursor.execute(query_publisher, args_publisher)

错误:

1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%s ON DUPLICATE KEY UPDATE PUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)' at line 1

最佳答案

Mysql 执行的语法是execute(query_statement, tuple_values)

args_publisher = (publisher_name)应该是元组,当是单元元组时,应该是(publisher_name,) 不要省略逗号

关于mysql - python mysql insert syntax error 当只有一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36699898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com