私はこれが以前に尋ねられ、答えられたことがあると確信しています、しかし私は愚かであるか、それから答えのどれも私のために働きません。多分私はそれを理解していません。ただし、ここに問題があります。私はこのクラスを取得しました:
import sqlite3
class User:
def __init__(self, name, age):
self.name = name
self.age = age
def saveToDatabase(self):
connection = sqlite3.connect("users.db")
cur = connection.cursor()
cur.execute("DROP TABLE IF EXISTS users")
cur.execute("CREATE TABLE users (name TEXT PRIMARY KEY, age INTEGER)")
cur.execute("INSERT OR REPLACE INTO users VALUES (?,?)", (self.name, self.age))
connection.commit()
connection.close()
@staticmethod
def printUserFromDatabase(name):
connection = sqlite3.connect("users.db")
cur = connection.cursor()
cur.execute("SELECT * FROM users WHERE name=?", name)
print(cur.fetchone())
connection.close()
そして、それは機能し、データベースが作成され、それにユーザーを追加できますが、データベースからユーザーを印刷しようとすると、次のようになります。
>>> tom = User("Tom", 24)
>>> tom.saveToDatabase()
>>> User.printUserFromDatabase("Tom")
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
User.printUserFromDatabase("Tom")
File "C:\Users\Markus\Desktop\foo\foo.py", line 25, in printUserFromDatabase
cur.execute("SELECT * FROM users WHERE name=?", name)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 3 supplied.
>>>