Mysql.connector Python, нет результата, когда соединение уже используется - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть простой код, который отправляет сообщение по http в другое веб-приложение и проверяет, правильно ли оно вставлено в базу данных (2 раза)

Так что этот код не вставляется в базу данных (это делается в другом приложении)

    SELECT_TABLE1_BY_ID_AND_DATE = "SELECT * FROM table1 WHERE table1.id = %s AND timedata = FROM_UNIXTIME(%s)"
    SELECT_TABLE2_BY_ID_AND_DATE = "SELECT * FROM table2 WHERE table2.id = %s AND timedata = FROM_UNIXTIME(%s)"
    try:
        conn = mysql.connector.connect(user=db['user'], password=db['password'], host=db['host'], port=db['port'], database="TEST", raise_on_warnings=True)
        cursor = conn.cursor()
        self.send1Message(msg1) # Send to HTTP Webapp
        cursor.execute(SELECT_TABLE1_BY_ID_AND_DATE, (idD, timing))
        print(cursor.fetchall()) #1
        self.send2Message(msg2) Send to HTTP Webapp
        cursor.execute(SELECT_TABLE2_BY_ID_AND_DATE, (idD, timing))
        print(cursor.fetchall()) #2 
    except mysql.connector.Error as err:
        print("Something went wrong: {}".format(err))
  • Если я использую одно и то же соединение SQL между 2 sendTable, только первый fetchAll возвращает данные. (# 1 печатает данные и # 2 печатает пустой список) .

  • Я также пытался закрыть соединение после # 1 и запустить другое соединение.Это работает как для (# 1 печатает данные, так и для № 2 тоже) .

(Я должен точно указать, что мои запросы верны и что данные хорошо вставленыв базу данных вовремя через веб-приложение).

Это нормальное поведение соединения?

Большое спасибо!

1 Ответ

0 голосов
/ 30 ноября 2018

Попробуйте 2 соединения ...

    conn1 = mysql.connector.connect(user=db['user'], password=db['password'], host=db['host'], port=db['port'], database="TEST", raise_on_warnings=True)
    conn2 = mysql.connector.connect(user=db['user'], password=db['password'], host=db['host'], port=db['port'], database="TEST", raise_on_warnings=True)
    cursor1 = conn1.cursor()
    self.send1Message(msg1) # Send to HTTP Webapp
    cursor1.execute(SELECT_TABLE1_BY_ID_AND_DATE, (idD, timing))
    print(cursor1.fetchall()) #1
    self.send2Message(msg2) Send to HTTP Webapp
    cursor2 = conn2.cursor()
    cursor2.execute(SELECT_TABLE2_BY_ID_AND_DATE, (idD, timing))
    print(cursor2.fetchall()) #2 
...