0

嗨,我有这样的查询字符串

executeQuery = '''insert into CarModel
                        (modeli,msubuqi,gamomshvebi)
                         values(%s,%s,%s)''' % ("BMW","X5","Jeep")
cursor.execute(executeQuery)

但是当我执行它时它给了我错误:列“BMW”不存在第 3 行:值(BMW,X5,Jeep)我不知道为什么它认为“BMW”是列,请帮助我正在处理它一整天

4

1 回答 1

0

格式化后,executeQuery等于:

executeQuery = '''insert into CarModel
                    (modeli,msubuqi,gamomshvebi)
                     values(BMW, X5, Jeep)'''

SQL 返回您 BMW 不是列是正常的,因为您的值周围没有引号。改用带参数的执行:

cursor.execute('''insert into CarModel(modeli,msubuqi,gamomshvebi)
                     values(?,?,?)''', ("BMW","X5","Jeep"))

注意逗号而不是%.

有关更多信息,请参见cursor.execute()定义。我假设您使用的是 SQLite,但它与 Python 中的 DB API 的约定相同。每个著名的数据库系统都使用这个接口。

评论后编辑

如果你想构造你的 SQL 查询,你可以使用你的方法,但%s用引号括起来:

executeQuery = '''insert into CarModel(modeli,msubuqi,gamomshvebi)
                     values("%s","%s","%s")''' % ("BMW","X5","Jeep")
于 2013-08-25T14:59:27.017 回答