python - 請問個數(shù)據(jù)庫插入問題
問題描述
Python3 or sqlite3info = '’INSERT INTO brush_card_record(brush_card_date, brush_card_time, card_num_6061, card_num_6654) VALUES(?,?,?,?)’,(’2017-05-28’,’12:23:32’, 123, 0)'
cur.execute(info)
這樣會報錯:sqlite3.OperationalError
cur.execute(’INSERT INTO brush_card_record(brush_card_date, brush_card_time, card_num_6061, card_num_6654) VALUES(?,?,?,?)’,(’2017-05-28’,’12:23:32’, 123, 0))
這樣就可以運(yùn)行。
問題解答
回答1:cur.execute有兩個參數(shù),一個是SQL,一個是給SQL的參數(shù)傳值,你第一句用雙引號括起來相當(dāng)一個字符串,也就是一個參數(shù),沒有傳入第二個參數(shù)
回答2:info = 'INSERT INTO brush_card_record(brush_card_date, brush_card_time, card_num_6061, card_num_6654) VALUES(%s,%s,%s,%s)'%(’2017-05-28’,’12:23:32’, 123, 0)
或者str.format
回答3:sqlite中是這么定義:class Connection(object): ''' SQLite database connection object. ''' def cursor(self, *args, **kwargs): # real signature unknown''' Return a cursor for the connection. '''passclass Cursor(object): ''' SQLite database cursor class. ''' def execute(self, *args, **kwargs): # real signature unknown''' Executes a SQL statement. '''pass 問題中的第一種方式無法自動解包回答4:
問題已找到,謝謝回答的朋友!
數(shù)據(jù)庫表插入新數(shù)據(jù)為動態(tài)時,更好的處理方式是先生成str,然后作為參數(shù)傳進(jìn)cur.execute()中。
代碼示例:
insert_info = ’’’INSERT INTO %s(brush_card_date, brush_card_time, card_num_6061, card_num_6654) VALUES('%s', '%s', %s, %s)’’’ % (f_table_name, date, now_time, gold_6061, gold_6654)cur.execute(insert_info)
相關(guān)文章:
1. java中返回一個對象,和輸出對像的值,意義在哪兒2. javascript - Img.complete和img.onload判斷圖片加載完成有什么區(qū)別?3. css - chrome下a標(biāo)簽嵌套img 顯示會多個小箭頭?4. vim - docker中新的ubuntu12.04鏡像,運(yùn)行vi提示,找不到命名.5. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?6. mysql - 在不允許改動數(shù)據(jù)表的情況下,如何優(yōu)化以varchar格式存儲的時間的比較?7. mysql 為什么主鍵 id 和 pid 都市索引, id > 10 走索引 time > 10 不走索引?8. css3 - 純css實(shí)現(xiàn)點(diǎn)擊特效9. css - 網(wǎng)頁div區(qū)塊 像蘋果一樣可左右滑動 手機(jī)與電腦10. javascript - 有適合開發(fā)手機(jī)端Html5網(wǎng)頁小游戲的前端框架嗎?
