成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python - 請(qǐng)問(wèn)個(gè)數(shù)據(jù)庫(kù)插入問(wèn)題

瀏覽:144日期:2022-06-28 16:36:47

問(wèn)題描述

Python3 or sqlite3

info = '’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)

這樣會(huì)報(bào)錯(cuò):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)行。

問(wèn)題解答

回答1:

cur.execute有兩個(gè)參數(shù),一個(gè)是SQL,一個(gè)是給SQL的參數(shù)傳值,你第一句用雙引號(hào)括起來(lái)相當(dāng)一個(gè)字符串,也就是一個(gè)參數(shù),沒(méi)有傳入第二個(gè)參數(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 問(wèn)題中的第一種方式無(wú)法自動(dòng)解包回答4:

問(wèn)題已找到,謝謝回答的朋友!

數(shù)據(jù)庫(kù)表插入新數(shù)據(jù)為動(dòng)態(tài)時(shí),更好的處理方式是先生成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)

標(biāo)簽: Python 編程
相關(guān)文章: