Уведомления

Группа в Telegram: @pythonsu

#1 Май 29, 2024 16:17:58

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не обнорвляются данные из БД MYSQL

Добрый день, столкнулся с проблемой, программа анализирует в БД значение weight (в таблице всегда одна строка, но значение weight в ней меняется постоянно). Но программа показывает верное значение только при запуске, дальше в цикле только это значение и остается, хотя в БД значение меняется.

 conn = pymysql.connect(
    host='localhost',
    user='user',
    password='password',
    database='db'
)
cursor = db.cursor()
while True:
    cursor.execute("SELECT weight FROM table LIMIT 1")
    result = cursor.fetchone()
    if result[0] > 2000:
        print("OK")
        break
    else:
        print("Restart")
        time.sleep(5)  
        continue
cursor.close()
db.close()

Офлайн

#2 Май 29, 2024 19:42:34

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Не обнорвляются данные из БД MYSQL

 import pymysql
import time
def check_weight():
    conn = pymysql.connect(
        host='localhost',
        user='user',
        password='password',
        database='db'
    )
    cursor = conn.cursor()
    while True:
        cursor.execute("SELECT weight FROM table LIMIT 1")
        result = cursor.fetchone()
        if result is None:  # Handle no rows returned
            print("No weight found. Waiting...")
            time.sleep(5)
            continue
        if result[0] > 2000:
            print("OK")
            break
        else:
            print("Restart")
            time.sleep(5)
            continue
    cursor.close()
    conn.close()
if __name__ == "__main__":
    check_weight()



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Май 29, 2024 21:48:58

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не обнорвляются данные из БД MYSQL

Не совсем понял. У меня немного код изменился, можете помочь с обновлением данных \

 import struct
import sys
import time
import datetime
import pymysql
import pymysql.cursors
import wiringpi as wp
DB_CONFIG = {
    'host': 'localhost',
    'user': 'user',
    'password': 'password',
    'database': 'db'
}
# Пины для управления реле и кнопкой
RELAY_PIN = 2 #пин реле
BUTTON_PIN = 9 #пин кнопки
# Установка соединения с базой данных
connection = pymysql.connect(**DB_CONFIG)
cursor = connection.cursor()
# Инициализация WiringPi
wp.wiringPiSetup()
# Установка пина с реле в режим OUTPUT
wp.pinMode(RELAY_PIN, wp.OUTPUT)
# Установка пина с кнопкой в режим INPUT
wp.pinMode(BUTTON_PIN, wp.INPUT)
try:
    while True:
        # Выполнение запроса для получения значения веса из первой таблицы
        cursor.execute("SELECT MAX(weight) FROM table1")
        row1 = cursor.fetchone()[0]
        row1 = int(
            row1) if row1 is not None else 0  # Преобразование значения веса в целое число или 0, если значение None
        # Выполнение запроса для получения значения веса из второй таблицы
        cursor.execute("SELECT MAX(weight) FROM table2")
        row2 = cursor.fetchone()[0]
        row2 = int(
            row2) if row2 is not None else 0  # Преобразование значения веса в целое число или 0, если значение None
       # Проверка значений и управление реле
        if row1 > 2000 or row2 > 2000:
            # Включаем реле
            wp.digitalWrite(RELAY_PIN, wp.LOW)
        else:
            # Выключаем реле
            wp.digitalWrite(RELAY_PIN, wp.HIGH)
        # Проверка нажатия на кнопку для выхода из программы
        if wp.digitalRead(BUTTON_PIN) == wp.LOW:
            break
finally:
    # Закрытие курсора, соединения с базой данных и очистка WiringPi
    cursor.close()
    connection.close()
    wp.pinMode(RELAY_PIN, wp.INPUT)
    wp.pinMode(BUTTON_PIN, wp.INPUT)

Офлайн

#4 Май 30, 2024 01:35:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Не обнорвляются данные из БД MYSQL

staxbel
Но программа показывает верное значение только при запуске, дальше в цикле только это значение и остается, хотя в БД значение меняется.
Попробуй внести открытие и закрытие курсора в тело цикла.



Отредактировано py.user.next (Май 31, 2024 14:40:49)

Офлайн

#5 Май 30, 2024 06:27:58

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не обнорвляются данные из БД MYSQL

py.user.next
Спасибо огромное, помогло

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version