Inserting QlineEdit.text() into Sqlite3 table give an error sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type
Inserting QlineEdit.text() into Sqlite3 table give an error sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type
我将 python 2.7 与 pyqt4.10 和 sqlite3 Db 一起使用,试图从 QlineEdit
获取用户输入以插入到 sqlite3
table 中已创建
Table结构
CREATE TABLE `categories` (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`category_name` TEXT NOT NULL UNIQUE
);
我正在尝试在添加输入后用新数据刷新 Qlistwidget
中的列表
这是我的完整代码:
def proc():
input_user = self.lineEdit.text()
conn = sqlite3.connect('storage/container.db')
conn.row_factory = lambda c, row: row[0]
c = conn.cursor()
c.execute("INSERT INTO categories (category_name) VALUES (?)", (input_user, ))
conn.commit()
conn = sqlite3.connect('storage/container.db')
conn.row_factory = lambda c, row: row[0]
c = conn.cursor()
c.execute("SELECT category_name FROM categories")
category_all = c.fetchall()
for items in category_all:
self.listWidget.addItem(items)
conn.close()
如您所见,我使用 input_user = self.lineEdit.text()
从 QlineEdit
获取用户输入
错误是:
Traceback (most recent call last):
File "C:\python\townoftechwarehouse\add_category.py", line 63, in proc
c.execute("INSERT INTO categories (category_name) VALUES (?)", (input_user, ))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.
发现问题是我使用了 qslite3 不可读的阿拉伯字符,所以我必须使用 unicode
,这里是编辑:
已更改:
input_user = self.lineEdit.text()
收件人:
input_user1 = self.lineEdit.text()
input_user = unicode(input_user1)
我将 python 2.7 与 pyqt4.10 和 sqlite3 Db 一起使用,试图从 QlineEdit
获取用户输入以插入到 sqlite3
table 中已创建
Table结构
CREATE TABLE `categories` (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`category_name` TEXT NOT NULL UNIQUE
);
我正在尝试在添加输入后用新数据刷新 Qlistwidget
中的列表
这是我的完整代码:
def proc():
input_user = self.lineEdit.text()
conn = sqlite3.connect('storage/container.db')
conn.row_factory = lambda c, row: row[0]
c = conn.cursor()
c.execute("INSERT INTO categories (category_name) VALUES (?)", (input_user, ))
conn.commit()
conn = sqlite3.connect('storage/container.db')
conn.row_factory = lambda c, row: row[0]
c = conn.cursor()
c.execute("SELECT category_name FROM categories")
category_all = c.fetchall()
for items in category_all:
self.listWidget.addItem(items)
conn.close()
如您所见,我使用 input_user = self.lineEdit.text()
从 QlineEdit
错误是:
Traceback (most recent call last):
File "C:\python\townoftechwarehouse\add_category.py", line 63, in proc
c.execute("INSERT INTO categories (category_name) VALUES (?)", (input_user, ))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.
发现问题是我使用了 qslite3 不可读的阿拉伯字符,所以我必须使用 unicode
,这里是编辑:
已更改:
input_user = self.lineEdit.text()
收件人:
input_user1 = self.lineEdit.text()
input_user = unicode(input_user1)