我正试图将一些数据插入sqlite数据库,具体如下:
param = '("593863695396044801","Ivan F. Siahaan","307783731","None","65","83","Thu Apr 30 19:45:13 +0000 2015","xyz")'
>>> conn.execute("INSERT INTO data "+param) Traceback (most recent call last):
File "<stdin>", line 1, in <module>
sqlite3.OperationalError: near ")": syntax error我初始化了与数据库的连接如下:
from sqlite3 import dbapi2 as sqlite
conn = sqlite.connect('dataStore')我在这里做什么坏事?
发布于 2015-04-30 19:56:23
您的SQL语法弄错了;引用和INSERT语句语法都不正确。
SQLite不支持字符串值周围的双引号,只支持单引号。来自SQLite关键词文档化
'keyword'单引号中的关键字是字符串文本。"keyword"双引号中的关键字是标识符.
您正在使用双引号,但是对于字符串文本,您需要使用单引号代替。
您还缺少了VALUES关键字;请参阅报表文件;模式是INSERT INTO <table> VALUES (<value list>)。
但是,您确实希望将引用留给数据库本身。在这里使用SQL参数:
statement = "INSERT INTO data VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
params = (593863695396044801, "Ivan F. Siahaan", 307783731, None, 65, 83, "Thu Apr 30 19:45:13 +0000 2015", "xyz")
conn.execute(statement, params)请注意,这还允许您使用Python在数据库中插入一个None。
https://stackoverflow.com/questions/29976680
复制相似问题