Вот часть кода:
import sqlite3
from PIL import Image,ImageTk
import cv2
import numpy as np
from tkinter import Tk, Label,Button,Toplevel,Entry
def display():
m,n=0,0
c=str(en.get())
print(c)
t=Toplevel()
d="%"+c+"%"
cursor = conn.execute("""SELECT * from (select * from
user_1 union all SELECT *
from user_3 union all SELECT *
from user_4 union all SELECT *
from user_5 union all SELECT *
from user_2 ) where id like %s""",(d,))
for row in cursor:
print("ID = ", row[0])
print("IMG = ",row[1])
t.mainloop()
print("Operation done successfully");
conn.close()
w=Tk()
w.title("gui")
en=Entry(w)
en.grid(row=0)
conn = sqlite3.connect('datastorage.db')
print("Opened database successfully");
a=Button(w,text="display",command=display).grid()
Оператор sql LIKE генерирует синтаксическую ошибку следующим образом:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\ABC\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:\Users\ABC\Desktop\Python tut\trial.py", line 18, in display
from user_2 ) where id like %s""",(d,))
sqlite3.OperationalError: near "%": syntax error
c - строка, введенная пользователь, его значение хранится в d, как я хочу, чтобы все строки, содержащие строку c. Я знаю, что есть много похожих вопросов, но ни один из них не решает мою проблему. Может кто-нибудь помочь мне?