无法使用 MySQL 在 python 中插入单列值

use*_*880 7 python mysql sql python-2.7

我有一个单列表。我需要在此列中插入值。程序正确运行,没有错误。但是当我检查数据库时,没有插入任何内容。当我向代码和表中添加另一列时,程序正确插入数据。你能告诉我如何为单列表插入数据吗?这是不向表中插入任何内容的单列代码。

import MySQLdb
conn = MySQLdb.connect(host= "localhost",
                  user="root",
                  passwd="123",
                  db="dbname")
cursor = conn.cursor()
x=100
try:
    sql="""INSERT INTO table (col1) VALUES ('%s')"""
    cursor.execute(sql, (x))
    conn.commit()
except:
    conn.rollback()

conn.close()
Run Code Online (Sandbox Code Playgroud)

这是两列代码。

import MySQLdb
conn = MySQLdb.connect(host= "localhost",
                  user="root",
                  passwd="123",
                  db="dbname")
cursor = conn.cursor()
x=100
y=2
try:
    sql="""INSERT INTO table (col1,col2) VALUES ('%s','%s')"""
    cursor.execute(sql, (x,y))
    conn.commit()
except:
    conn.rollback()

conn.close()
Run Code Online (Sandbox Code Playgroud)

the*_*orn 10

您需要去掉 周围的引号%s,之后您需要知道 to 的第二个参数cursor.execute()是一个元组,并且写入的是一个单元组:

(item,)
Run Code Online (Sandbox Code Playgroud)

注意逗号。那么解决办法是:

sql="""INSERT INTO table (col1) VALUES (%s)"""
cursor.execute(sql, (x,))
Run Code Online (Sandbox Code Playgroud)