Python SQLite3执行错误
我使用Python2.7.5编写了以下代码,以根据我正在学习的一门在线课程进行编译,该课程展示了sqlite3如何与python一起工作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
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')
,而在课程中,它只在控制台中打印一次。为什么会这样?