首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python3误差?

使用Python3误差?
EN

Stack Overflow用户
提问于 2015-04-30 19:55:04
回答 1查看 80关注 0票数 0

我正试图将一些数据插入sqlite数据库,具体如下:

代码语言:javascript
复制
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

我初始化了与数据库的连接如下:

代码语言:javascript
复制
from sqlite3 import dbapi2 as sqlite

conn = sqlite.connect('dataStore')

我在这里做什么坏事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-30 19:56:23

您的SQL语法弄错了;引用和INSERT语句语法都不正确。

SQLite不支持字符串值周围的双引号,只支持单引号。来自SQLite关键词文档化

'keyword'单引号中的关键字是字符串文本。 "keyword"双引号中的关键字是标识符.

您正在使用双引号,但是对于字符串文本,您需要使用单引号代替。

您还缺少了VALUES关键字;请参阅报表文件;模式是INSERT INTO <table> VALUES (<value list>)

但是,您确实希望将引用留给数据库本身。在这里使用SQL参数:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29976680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档