python - Saya mempunyai soalan mengenai penyisipan pangkalan data
某草草
某草草 2017-06-12 09:27:56
0
4
853

Python3 atau sqlite3

info = "'MASUKKAN KE DALAM rekod_kad_berus(tarikh_kad_berus, masa_kad_berus, nombor_kad_6061, nombor_kad_6654) NILAI(?,?,?,?)',('2017-05-28','12:23:32', 123, 0) "

cur.execute(info)

Ini akan melaporkan ralat: sqlite3.OperationalError

cur.execute('INSERT IN TO brush_card_record(brush_card_date, brush_card_time, card_num_6061, card_num_6654) NILAI(?,?,?,?)',('2017-05-28','12:23:32', 123, 0 ))

Ini akan berjaya.

某草草
某草草

membalas semua(4)
代言

cur.execute mempunyai dua parameter, satu ialah SQL, dan satu lagi adalah untuk menghantar nilai kepada parameter SQL Ayat pertama anda yang disertakan dalam petikan berganda adalah bersamaan dengan rentetan, iaitu parameter dan parameter kedua bukan. lulus dalam

世界只因有你

info = "MASUKKAN KE DALAM rekod_kad_berus(tarikh_kad_berus, masa_kad_berus, nombor_kad_6061, nombor_kad_6654) NILAI(%s,%s,%s,%s)"%('2017-05-28','12:23:32', 123 , 0)

或者str.format

曾经蜡笔没有小新
sqlite中是这么定义:

class Connection(object):
    """ SQLite database connection object. """
    def cursor(self, *args, **kwargs): # real signature unknown
        """ Return a cursor for the connection. """
        pass
        
class Cursor(object):
    """ SQLite database cursor class. """
    def execute(self, *args, **kwargs): # real signature unknown
        """ Executes a SQL statement. """
        pass   

问题中的第一种方式无法自动解包
曾经蜡笔没有小新

Soalan telah ditemui, terima kasih atas jawapannya!

Apabila memasukkan data baharu ke dalam jadual pangkalan data adalah dinamik, cara yang lebih baik ialah menjana str dahulu dan kemudian menghantarnya ke cur.execute() sebagai parameter.

Contoh kod:

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)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan