Python:MySQL错误

0 投票
4 回答
2108 浏览
提问于 2025-04-16 01:47
import MySQLdb    
import random

db = MySQLdb.connect (host = "localhost", user = "python-test", passwd = "python", db = "python-test")

cursor = db.cursor()

var = .3

sql = "INSERT INTO RandomInt 
         (RAND) 
       VALUES 
         (var)" # RandomInt is the name of the table and Rand is the Column Name

cursor.execute(sql)

db.commit()
db.close()

我遇到了一个错误,提示说 操作错误: (1054, "字段列表中未知列 'var'")。我为什么会出现这个错误呢?我已经定义了 'var',那我该怎么解决这个问题呢?

4 个回答

1

这段代码可以解决一个问题:

sql = "INSERT INTO RandomInt (RAND) VALUES (%s)" 
cursors.execute(sql, (var,))

接下来要注意的是,你写入的表的名字,0.3 不是一个整数。

补充说明:mysqldb 的参数样式是 %s 而不是 ?

1
var = .3
sql = "INSERT INTO RandomInt (RAND) VALUES (%s)" 
cursor.execute(sql, (var,))

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

5

如上所述,var 作为字符串发送给 MySQL。
试试下面这个:

sql = "INSERT INTO RandomInt (RAND) VALUES (%s)"
cursor.execute(sql, (var,))

编辑:

>>> import MySQLdb
>>> MySQLdb.paramstyle
'format'

MySQLdb 的参数样式是 format;根据 DB-API 的规定,它是 %s

            'format'        ANSI C printf format codes, 
                            e.g. '...WHERE name=%s'

撰写回答