Ошибки и предложения

В этом разделе вы можете проголосовать за идеи по открытым проектам. Вы всегда можете предложить свою идею, перейдя на страницу проекта.

Спасибо!

Мы очень рады, что Вам нравится данный проект и вы проголосовали за его развитие.

Работа над задачами по проекту отнимает у его разработчика самое ценное — время, так что небольшая компенсация в виде материальной поддержки поднимет интерес к разработке и позволит сделать больше задач для общей пользы :)

Перейти к проекту Нет, спасибо

<<< Назад

Добавить возможность обмена бинарными данными с предобработкой пользовательским кодом

Добавлено: 2025-01-17 13:18:50 ibax / Статус: Новая / Проект: Дополнение MQTT

Поля VALUE в таблицах mqtt имеют тип varchar, что вызывает ошибку если в топике бинарные данные (в моем случае - сериализованные при помощи Google Protocol Buffer):

1366: Incorrect string value: '\xAF\x010\xBE\x01B...' for column db_terminal.mqtt.VALUE at row 1
UPDATE mqtt SET TITLE='cabinet/RL3T062401000056/report/10', LOCATION_ID='0', UPDATED='2025-01-17 08:01:00', VALUE= 2(▒0▒B\rRL3.TM.06.M12JffR897010262726429890FFX', PATH='cabinet/RL3T062401000056/report/10', LINKED_OBJECT='', LINKED_PROPERTY='', PATH_WRITE='', QOS='0', RETAIN='0', DISP_FLAG='0', REPLACE_LIST='', LINKED_METHOD='', READONLY='0', ONLY_NEW_VALUE='0', WRITE_TYPE='0', LOGGING='0' WHERE ID = '140'
Backtrace:

0 /var/www/html/lib/mysqli.class.php(393): registerError()

1 /var/www/html/lib/mysqli.class.php(182): mysql->Error()

2 /var/www/html/lib/mysqli.class.php(283): mysql->Exec()

3 /var/www/html/lib/sqlFunctions.class.php(134): mysql->Update()

4 /var/www/html/modules/mqtt/mqtt.class.php(497): SQLUpdate()

5 /var/www/html/modules/mqtt/mqtt.class.php(712): mqtt->processMessage()

6 /var/www/html/api.php(457): mqtt->api()

7 {main}

Для работы с такими данными желательно поменять тип полей VALUE во всех связанных с MQTT таблицах и добавить возможность
предобработки данных (PHP код) перед записью их в слинкованные свойства.

+1
 
Обсуждение (3)