Ich denke, ich habe die richtige Idee, um diese Funktion zu tun, aber ich bin mir nicht sicher, warum ich diesen Fehler bekomme, wenn ich es teste. Kann mir bitte jemand helfen, das zu beheben?Returning Abteilung Kurse in Datenbanken
cur.execute(q)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 0 supplied.
Aktuelle Versuch
def find_dept_courses(db, dept):
'''Return the courses from the given department. Use the "LIKE"
clause in your SQL query for the course name.'''
return run_query(db, '''SELECT DISTINCT Course FROM Courses WHERE
Course LIKE (? + 'dept%')''')
Wunsch Ausgang
find_dept_courses('exams.db', 'BIO')
# [('BIOA01H3F',), ('BIOA11H3F',), ('BIOB10H3F',), ('BIOB33H3F',),
# ('BIOB34H3F',), ('BIOB50H3F',), ('BIOC12H3F',), ('BIOC15H3F',),
# ('BIOC19H3F',), ('BIOC32H3F',), ('BIOC37H3F',), ('BIOC50H3F',),
# ('BIOC58H3F',), ('BIOC59H3F',), ('BIOC61H3F',), ('BIOC63H3F',),
# ('BIOD21H3F',), ('BIOD22H3F',), ('BIOD23H3F',), ('BIOD26H3F',),
# ('BIOD33H3F',), ('BIOD48H3F',), ('BIOD65H3F',)]
Abfragefunktion:
def run_query(db, q, args=None):
"""(str, str, tuple) -> list of tuple
Return the results of running query q with arguments args on
database db."""
conn = sqlite3.connect(db)
cur = conn.cursor()
# execute the query with the given args passed
# if args is None, we have only a query
if args is None:
cur.execute(q)
else:
cur.execute(q, args)
results = cur.fetchall()
cur.close()
conn.close()
return results
A '?' in Eine SQLite-Anweisung ist ein Platzhalter, der mit einem konkreten Wert gefüllt werden muss (normalerweise als Parameter bei der Ausführung der Anweisung angehängt). –
Ok, wie kann ich das beheben? – bigez
Versuchen Sie, die '? + 'Teil. Dies ist nicht der beste Weg, sollte aber funktionieren. –