嗨,我正在尝试通过python3中的sqlite3在sqlite中创建表。 到目前为止,我得到的代码是:
import sqlite3
text="hello"
db = sqlite3.connect('C:/DB.db')
c = db.cursor()
c.execute("CREATE TABLE %s (sida)" % name)
for i in range(10):
c.execute("INSERT INTO %s VALUES (%s)" % (name, str(text))) # This does not work
db.commit()
db.close()
c.close
将值从str(text)更改为i即可;
c.execute("INSERT INTO %s VALUES (%s)" % (name, i)) # This works
传递整数作为值有效,但不传递字符串。我一直在寻找解决方案,但被卡住了。
我得到的错误是:
c.execute(“插入%s值(%s)”%(name,str(text)) sqlite3.OperationalError:在“ a2”附近:语法错误
答案 0 :(得分:1)
您应该为插入使用准备好的语句,将值绑定到存在的任何占位符:
c = db.cursor()
c.execute("CREATE TABLE %s (sida)" % name)
for i in range(10):
c.execute("INSERT INTO %s VALUES (?)" % name, (str(text),))
db.commit()
db.close()
c.close
实际上,最好不要使表名称本身具有动态性。