Rumah  >  Soal Jawab  >  teks badan

python - Saya mempunyai soalan mengenai penyisipan pangkalan data

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.

某草草某草草2686 hari yang lalu820

membalas semua(4)saya akan balas

  • 代言

    代言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

    balas
    0
  • 世界只因有你

    世界只因有你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

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新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   
    
    问题中的第一种方式无法自动解包

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新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)

    balas
    0
  • Batalbalas