gpt4 book ai didi

python - sqlite3.操作错误: near "index": syntax error

转载 作者:行者123 更新时间:2023-11-30 22:01:51 30 4
gpt4 key购买 nike

我尝试使用 sqlite3 模块通过 python 连接到数据库,但出现错误 - sqlite3.OperationalError: close "index": 语法错误

<小时/>

I searched some solutions for this but i did not got the solution. I am new to sqlite3

<小时/>
def insert_into_db(url, title, description, keywords):
con = sqlite3.connect('index.db')
c = con.cursor()
create = r'''CREATE TABLE IF NOT EXISTS index (id INTEGER NOT NULL AUTO_INCREMENT,url VARCHAR,description TEXT,keywords TEXT);INSERT INTO index(url, title, description, keywords)VALUES('{}','{}',{}','{}');'''.format(url, title,description, keywords)
c.execute(create)
con.commit()
con.close()
<小时/>

帮我解决这个错误:(

最佳答案

INDEX是SQLite3中的关键字。因此,它将被解析为关键字。不过,有几种方法可以解决这个问题。

根据documentation ,您可以使用反引号或引号将其指定为表名。例如,

CREATE TABLE IF NOT EXISTS `index` ...

CREATE TABLE IF NOT EXISTS "index" ...

可能有效。

您可以从 execute() 命令将参数传递给 sql 语句。因此,

create = r'''CREATE TABLE ... VALUES(?,?,?,?);'''  # use ? for placeholders
c.execute(create, (url, title, description, keywords)) # pass args as tuple

与直接使用 Python 格式化参数相比,这更安全。

另请注意,SQLite 的 autoinc 语法是 AUTOINCRMENT,不带下划线,并且要求该字段也是 INTEGER PRIMARY KEY

关于python - sqlite3.操作错误: near "index": syntax error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919698/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com