sqlite3についてChatGPTにいちゃもんつけた、はずだった
pythonのsqlite3を使っていたときの出来事である。
import sqlite3
sinput=input("what table you want ? ")
dbname='main.db'
conn=sqlite3.connect(dbname)
cur=conn.cursor()
query=f"CREATE TABLE IF NOT EXISTS {sinput} (pname Text,url Text)"
cur.execute(query)
上記のコードでは、ユーザーが入力した名前で新しいデータのまとまりを作ろうとしている
queryの{sinput}の部分には入力された何かしらの文字が代入されているはずなのだが、
sqlite3.OperationalError: unrecognized token: "{"
といったエラーが吐き出される。
と思っていた。
でも、そうじゃないんだね。
sqlite3でユーザー入力を実行文に代入したいみたいな、
同じレベルの初級者が持つ悩みに寄り添いたかった。
その答えとして、
#その答えとして
query="CREATE TABLE IF NOT EXISTS" + sinput + " (pname Text,url Text)"
こいつを届けたかった。
実際の所、私の試したコードにおいては
query=f' 'のfが抜けてしまっていたのだと思う。
ChatGPTにエラーの解消を求めたが、
いかにも素人がやりそうな私の答えを返すことはなかった。
何度も何度も、f'~{sinput}'をかたくなに返してきた。
それで十分だから、そうしていたのだ。
ChatGPTに発想で勝利したと錯覚していた自分が恥ずかしくてならない。
自分のミスを疑えなかった、その時点で負けていた。
でも、最後に伝えたいことがあるんだ
sqlite3.OperationalError: no such column: 過剰な自信
このエラーを見たとき、query文のcolumnを
'DELETE FROM my_mind WHERE name="過剰な自信"'
みたいに""で囲えば多分通るよ。