Python SQLite3执行错误

Python SQLite3执行错误,python,sqlite,Python,Sqlite,我使用Python2.7.5编写了以下代码,以根据我正在学习的一门在线课程进行编译,该课程展示了sqlite3如何与python一起工作 import sqlite3 as sql database1 = sql.connect('test1.db') db1_cursor = database1.cursor() cmd = 'CREATE TABLE IF NOT EXISTS users(username TEXT,password TEXT)' cmd2 = 'INSERT IN

我使用Python2.7.5编写了以下代码,以根据我正在学习的一门在线课程进行编译,该课程展示了sqlite3如何与python一起工作

import sqlite3 as sql

database1 = sql.connect('test1.db')

db1_cursor = database1.cursor()

cmd = 'CREATE TABLE IF NOT EXISTS users(username TEXT,password TEXT)'

cmd2 = 'INSERT INTO users(username,password) VALUES("testuser,testpassword")'

cmd3 = 'SELECT username,password FROM users'

db1_cursor.execute(cmd)

db1_cursor.execute(cmd2)

db1_cursor.execute(cmd3)

database1.commit()

for x in db1_cursor:

    print(x)
现在,在运行此代码时,会出现以下操作错误:

Traceback (most recent call last):

File "C:\Users\Ryan\My Code Projects\Learning\udemycourse.py", line 11, in <module>

db1_cursor.execute(cmd2)

OperationalError: 1 values for 2 columns
回溯(最近一次呼叫最后一次):
文件“C:\Users\Ryan\My Code Projects\Learning\udemycourse.py”,第11行,在
db1_cursor.execute(cmd2)
操作错误:2列有1个值
为什么它为db1\u cursor.execute(cmd2)而不是db1\u cursor.execute(cmd1)给出了此错误?我想您的意思是

Values ("testuser","testpassword")
我想你是说

Values ("testuser","testpassword")

插入的更好方法是 cmd2='插入用户(用户名、密码)值(?,)'

创建占位符

db1_cursor.execute(cmd2,('testuser','testpassword'))


将值作为元组传递是一种更好的插入方法 cmd2='插入用户(用户名、密码)值(?,)'

创建占位符

db1_cursor.execute(cmd2,('testuser','testpassword'))


并将值作为元组传递

这是可行的,但我决定使用上面的答案,因为它不会随我的课程改变太多代码语法。尽管如此,在课程中,它会打印两次
(u'testuser',u'testpassword')
,而在课程中,它只在控制台中打印一次。这是为什么?这是可行的,但我决定使用上面的答案,因为它不会改变我的课程后面代码的语法太多。尽管如此,在课程中,它会打印两次
(u'testuser',u'testpassword')
,而在课程中,它只在控制台中打印一次。为什么会这样?