亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQLite - 如何將變量用于表名 + 變量用于插入值

SQLite - 如何將變量用于表名 + 變量用于插入值

叮當貓咪 2023-03-16 17:55:30
我是編程新手,從 python 開始我在帖子中找到了這個腳本(下面的鏈接)query = 'SELECT * FROM {}'.format(table) c.execute(query)如何為 SQLite 表名使用變量它有效,但現在我必須增加一些復雜性并且不知道如何......我之前有這個:def add(order, theme):    parameters = [order, theme]        c.execute("INSERT INTO TABLE_NAME VALUES(NULL, ?,?)", parameters)所以我嘗試使用相同的,但可以自由選擇表的名稱。嘗試這樣的事情,但真的不知道它的語法:def add(order, theme):    table = input("with what table do you want to work with? ")    parameters = [order, theme]     insert = 'INSERT INTO {} VALUES(NULL, ?,?)'.format(table, parameters)    c.execute(insert)我懷疑它不起作用希望你能幫忙!:)
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

以下行{}用變量的內容替換table并將結果存儲在變量查詢中。 format適用于任何字符串:


query = 'SELECT * FROM {}'.format(table) 

另一方面,通過將字符串中的c.execute替換?為列表中的值來完成的替換類型parameters:


c.execute("INSERT INTO TABLE_NAME VALUES(NULL, ?,?)", parameters)

您可以將它們結合起來以達到您想要的效果:


table = input("with what table do you want to work with? ")

query = 'INSERT INTO {} VALUES(NULL, ?, ?)'.format(table)

parameters = [order, theme]

c.execute(query, parameters)


查看完整回答
反對 回復 2023-03-16
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

你在混合東西。

Format 是 Python 字符串對象的一種方法,用于根據代碼中的變量動態生成字符串。在您的第一個示例中定義數據庫名稱是正確的。

問題標記作為查詢值的占位符是 SQL 的特性,并且必須像第二個示例中那樣在沒有格式的情況下使用。

要修復您的代碼,首先使用格式構建查詢的字符串模板來定義數據庫名稱。然后,使用 execute 執行結果字符串并傳遞針對問號的參數。


查看完整回答
反對 回復 2023-03-16
  • 2 回答
  • 0 關注
  • 316 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號