Python запись в базу данных Mysql
Формулировка задачи:
Привет всем.
Помогите дописать код.
T3:
Внизу код, он работает так, пишет лог в базу.
Но суть в том что он записывает все запросы тем самым заспамливает базу.
Помогите подправить, чтобы он проверял на наличие записи по двум параметрам: (ip, port,).
Если есть запись в базе с этими параметрами чтобы он не писал ее повторно. То есть избавиться от дубликатов.
Пожалуйста по возможности исправите сам код, и напишите готовый образец.
Листинг программы
- def mysql_logscs(ipcs, portcs):
- timey = datetime.datetime.now().strftime('%Y')
- timem = datetime.datetime.now().strftime('%m')
- timed = datetime.datetime.now().strftime('%d')
- timeh = datetime.datetime.now().strftime('%H')
- timemin = datetime.datetime.now().strftime('%M')
- times = datetime.datetime.now().strftime('%S')
- attempts = 0
- while attempts < 1:
- try:
- host,name,user,password,table = cfg.get("LOG","HOST"),cfg.get("LOG","NAME"),cfg.get("LOG","USER"),cfg.get("LOG","PASSWORD"),cfg.get("LOG","TABLE")
- db = MySQLdb.connect(host=host,user=user,passwd=password,db=name)
- c = db.cursor()
- c.execute("INSERT INTO MS01 (timeyear, timemonth, timeday, timehour, timeminute, timesecond, ip, port, type) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)", (timey, timem, timed, timeh, timemin, times, ipcs, portcs, "cs"))
- c.close()
- attempts += 1
- except MySQLdb.Error, e:
- print "Not successfully connected and update log data. Retry to connect...5 Seconds."
- print "Error: %s" %e
- time.sleep(5)
- thread.exit()
Ребята немного дополнения.
Не по двум параметрам а по трем: (timeday, ip, port)
Есть у кого какие идеи?
Кто поможет, дам соточку на пивко.
Решение задачи: «Python запись в базу данных Mysql»
textual
Листинг программы
- mysql> INSERT IGNORE INTO access_logs (login, ip_address, port_number, time_stamp) VALUES ('user1', 2130706433, 80, 1481907621);
- Query OK, 0 rows affected, 1 warning (0.01 sec)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д