前提・実現したいこと
何度も質問すみません。
エントリーから取得したデータをデータベースと照らし合わせ、revのデータを取得したいと思っています。
発生している問題・エラーメッセージ
以下のエラーが発生しています。"fire"はdt1に代入されている文字列です。
Traceback (most recent call last): File "damagecalculation.py", line 6, in <module> import pokemon File "C:\Users\gojin\desktop\sqlite3\pokemon.py", line 6, in <module> import cursor File "C:\Users\gojin\desktop\sqlite3\cursor.py", line 44, in <module> cur.execute("SELECT rev FROM types WHERE type1 = '%s' AND type2 = '%s'" % (mtype, dt1)) sqlite3.OperationalError: near "fire": syntax error
該当のソースコード
Python
1import tkinter as tk 2import sqlite3 as sql 3import tkinter.ttk as ttk 4 5import main 6 7dbpath = "dex.sqlite3" 8conn = sql.connect(dbpath) 9cur = conn.cursor() 10 11cur.execute("SELECT type1 FROM dex WHERE name = '%s'" % main.aname.get()) 12at1 = cur.fetchone() 13cur.execute("SELECT type2 FROM dex WHERE name = '%s'" % main.aname.get()) 14at2 = cur.fetchone() 15cur.execute("SELECT A FROM dex WHERE name = '%s'" % main.aname.get()) 16A = cur.fetchone() 17cur.execute("SELECT C FROM dex WHERE name = '%s'" % main.aname.get()) 18C = cur.fetchone() 19cur.execute("SELECT S FROM dex WHERE name = '%s'" % main.aname.get()) 20aS = cur.fetchone() 21 22cur.execute("SELECT type1 FROM dex WHERE name = '%s'" % main.dname.get()) 23dt1 = cur.fetchone() 24cur.execute("SELECT type2 FROM dex WHERE name = '%s'" % main.aname.get()) 25dt2 = cur.fetchone() 26cur.execute("SELECT H FROM dex WHERE name = '%s'" % main.dname.get()) 27H = cur.fetchone() 28cur.execute("SELECT B FROM dex WHERE name = '%s'" % main.dname.get()) 29B = cur.fetchone() 30cur.execute("SELECT D FROM dex WHERE name = '%s'" % main.dname.get()) 31D = cur.fetchone() 32cur.execute("SELECT S FROM dex WHERE name = '%s'" % main.dname.get()) 33dS = cur.fetchone() 34 35cur.execute("SELECT type FROM moves WHERE name = '%s'" % main.mname.get()) 36mtype = cur.fetchone() 37cur.execute("SELECT mtype FROM moves WHERE name = '%s'" % main.mname.get()) 38mmtype = cur.fetchone() 39cur.execute("SELECT power FROM moves WHERE name = '%s'" % main.mname.get()) 40mpower = cur.fetchone() 41 42cur.execute("SELECT rev FROM types WHERE type1 = '%s' AND type2 = '%s'" % (mtype, dt1)) 43rev1 = cur.fetchone() 44cur.execute("SELECT rev FROM types WHERE type1 = '%s' AND type2 = '%s'"% (mtype, dt2)) 45rev2 = cur.fetchone()
試したこと
'%s'を{}、% (mtype, dt1)を.format(mtype, dt1)として解決を試みました。
回答1件
あなたの回答
tips
プレビュー