gpt4 book ai didi

python - 无论我尝试多少种不同的类型,插入语句永远不会起作用。 SQLite3 pyscripter

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:04 28 4
gpt4 key购买 nike

几天来我一直在尝试研究如何插入 SQL 表。我尝试的任何方法都不起作用,我只是花了几个小时修复所有错误,结果发现我回到了插入语句没有插入任何内容的开头。我只剩下几个小时了,在这个问题得到解决之前我无法对我的代码做任何其他事情,谢谢。

我完全不明白出了什么问题,并且不再有任何错误。它只是打印出表格,其中没有任何内容。我希望它打印出我拥有的输入(它们在完整代码中定义,我已经检查它们是否工作并打印)

def insert_user():
import sqlite3
score = "0"
db = sqlite3.connect("Database.db")
cursor = db.cursor()
sql = "INSERT INTO users (username,firstname, surname, age, password , score) VALUES (?,?,?,?,?,?)"
db.execute(sql,(usernamei, first_name ,last_name , age, passwordi ,score))
db.commit()
result = cursor.fetchall()
print()
print("{0:<20} {1:<20} {2:<20} {3:<20} {4:<20} {5:<20}".format("userID","username","firstname","surname","age","password","score"))
print("====================================================================================================")
for each in result:
print("{0:<20} {1:<20} {2:<20} {3:<20} {4:<20} {5:<20}".format(each[1],each[2],each[3],each[4],each[5],each[6]))


insert_user()

最佳答案

当您插入、删除、更新时,不使用游标。要从使用(执行)SELECT SQL 的表中获取数据,游标将包含结果集。

所以你需要执行插入,然后执行选择,例如使用“SELECT * FROM users”,然后使用 result = curve.fetchall()

不是针对连接执行,而是针对光标执行。

类似的东西(为了测试,表被删除并创建,并使用硬编码值(显然相应地调整)):-

def insert_user():
import sqlite3
score = "0"
db = sqlite3.connect("Database.db")
sql = "DROP TABLE IF EXISTS users"
db.execute(sql)
sql = "CREATE TABLE IF NOT EXISTS users (userID INTEGER PRIMARY KEY, username TEXT UNIQUE, firstname TEXT, surname TEXT, age INTEGER, password TEXT, score INTEGER)"
db.execute(sql)
result = db.cursor()
sql = "INSERT INTO users (username,firstname, surname, age, password , score) VALUES (?,?,?,?,?,?)"
db.execute(sql,("testusername", "testfirstname","testsurname" , 10, "password" ,score))
db.commit()
result.execute("SELECT * FROM users")

print("{0:<20} {1:<20} {2:<20} {3:<20} {4:<20} {5:<20} {6:<20}".format("userID","username","firstname","surname","age","password","score"))
print("====================================================================================================")
for each in result:
print("{0:<20} {1:<20} {2:<20} {3:<20} {4:<20} {5:<20} {6:20}".format(each[0],each[1],each[2],each[3],each[4],each[5],each[6]))
insert_user()

结果:-

E:\PYCharmPythonProjects\venv\Scripts\python.exe E:/PYCharmPythonProjects/Test001.py
userID username firstname surname age password score

====================================================================================================
1 testusername testfirstname testsurname 10 password 0

Process finished with exit code 0

关于python - 无论我尝试多少种不同的类型,插入语句永远不会起作用。 SQLite3 pyscripter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56021325/

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