Rumah > Soal Jawab > teks badan
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.
代言2017-06-12 09:29:56
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
世界只因有你2017-06-12 09:29:56
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
曾经蜡笔没有小新2017-06-12 09:29:56
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
问题中的第一种方式无法自动解包
曾经蜡笔没有小新2017-06-12 09:29:56
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)