sqlite3类型TEXT输入错误

时间:2017-06-02 14:29:57

标签: python sqlite

所以我有一个sqlite3数据库并创建了一个包含两个值的表。 这是创建表的代码。

CREATE TABLE `ip` (
    `PID`   INTEGER PRIMARY KEY AUTOINCREMENT,
    `IP`    TEXT
 );

现在我有python脚本,我可以在其中输入IP地址并将其存储在数据库中。 但是当我写入字段IP值1.2.3.4时,我在python中遇到错误:

sqlite3.OperationalError: near ".3": syntax error.

这是python代码:

import sqlite3

connection = sqlite3.connect('reverseDNS.db')
cursor = connection.cursor()

sql = "INSERT INTO ip (ip) VALUES (1.2.3.4)"

cursor.execute(sql)
connection.commit()



sql = 'SELECT * FROM ip'
cursor.execute(sql)
rows = cursor.fetchall()

for row in rows:
    print(row)

connection.close()

知道如何在sqlite3中存储IP地址

我尝试过其他类型,比如整数,但这有相同的错误

1 个答案:

答案 0 :(得分:2)

由于ip列的值定义为TEXT,因此需要将文字值括在单引号中。你应该找到查询

sql = "INSERT INTO ip (ip) VALUES ('1.2.3.4')"

按预期工作。