это мой первый пост о переполнении стека ... заранее спасибо за любую помощь Я очень новичок в программировании, и я создал функцию в Python для динамического поиска в базе данных sqlite3 вместо того, чтобы вводить тонны запросов . Я покажу код и попытаюсь объяснить, что я намеревался сделать на всех этапах. Короче говоря, мой cursor.fetchall () всегда оценивается как пустой, даже если я уверен, что в базе данных есть значение, которое он должен найти.
def value_in_database_check(table_column_name: str, value_to_check: str):
db, cursor = get_connection() # here i get a database and cursor connection
for tuple_item in schema(): # here i get the schema of my database from another function
if tuple_item[0] == "table": # now I check if the tuple is a table
schema_table = tuple_item[4] # this just gives me the table info of the tuple
# this lets me know the index of the column I am looking for in the table
found_at = schema_table.find(table_column_name)
# if my column value was found I will enter this block of code
if not found_at == -1:
table_name = tuple_item[1]
to_find_sql = "SELECT * FROM {} WHERE ? LIKE ?".format(table_name)
# value_to_check correlates to table_column_name
# example "email", "this@email.com"
cursor.execute(to_find_sql, (table_column_name, value_to_check))
# this always evaluates to an empty list even if I am certain that the
# information is in the database
fetch_to_find = cursor.fetchall()
if len(fetch_to_find) > 0:
return True
else:
return False