Python多线程sqlite3插入

2024-06-07 15:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个多线程的程序。在每个线程中都应该有一个数据库插入。在

编辑

但过了一段时间我也犯了同样的错误

我的代码:

import threading, sqlite3



class myThread(threading.Thread):


   def __init__(self, pn, icm):
       threading.Thread.__init__(self)
       self.pn = pn
       self.icm = icm


   def run(self):

       con = sqlite3.connect("DB.db", check_same_thread=False)
       cursor = con.cursor()
       cursor.execute("CREATE TABLE IF NOT EXISTS test(pn VARCHAR(100), icm VARCHAR(100))")
       cursor.execute("INSERT INTO test VALUES('"+self.pn+"', '"+self.icm+"')")
       con.commit()
       con.close()


for i in range(0, 300):
   myThread("ABCDEFG", "1234546").start()

我得到了一个错误:

^{pr2}$

谢谢你, 杰伊


Tags: testselfexecuteinitdef错误icmcon
1条回答
网友
1楼 · 发布于 2024-06-07 15:32:48

回答

import threading
import time, sqlite3


class myThread(threading.Thread):

   def __init__(self, pn, icm):
       threading.Thread.__init__(self)
       self.pn = pn
       self.icm = icm

       self.con = sqlite3.connect("DB.db", check_same_thread=False)
       self.cursor = self.con.cursor()
       self.cursor.execute("CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY AUTOINCREMENT, pn VARCHAR(100), icm VARCHAR(100))")



   def run(self):

       self.cursor.execute("INSERT INTO test VALUES(NULL, '"+self.pn+"', '"+self.icm+"')")
       self.con.commit()
       self.con.close()



for i in range(0, 300):

    myThread("ABCDEFG", "12345678").start()

相关问题 更多 >

    热门问题