Python中MySQL语句语法错误(1064)

2024-05-04 23:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将所有数据插入我创建的表中。这是我代码的相关部分:

    rows_inserted = 0 
    table_name = "mytable"

    for row in ordered: # ordered is a list of lists. it contains all my data
        sql = ("INSERT IGNORE INTO %s (ID, A, B, C, D, E, F) VALUES (%s, %s, %s, %s, %s, %s, %s)")

        rows_inserted += cursor.execute(sql, (table_name, 1, row[0], row[1], row[2], row[3], row[4], row[5]))

    print(rows_inserted) # to verify that all the records have been inserted to the table

在服务器上运行脚本时,出现以下错误:

^{pr2}$

我也试着用反勾来括列的名称,但没用。在


Tags: theto数据代码nameinforsql
1条回答
网友
1楼 · 发布于 2024-05-04 23:28:58

无法参数化表名。你必须加入字符串格式。在

sql = """INSERT IGNORE INTO {t} (ID, A, B, C, D, E, F) 
         VALUES (%s, %s, %s, %s, %s, %s, %s)""".format(t=table_name)
rows_inserted += cursor.execute(sql, (1, row[0], row[1], row[2], row[3], row[4], row[5]))

我不确定这是在哪里记录的,但您可以通过尝试以下几点来证明这一点:

^{pr2}$

相关问题 更多 >