Уведомление о текущем обновлении изменений базы данных MYSQL PHP

Мне было интересно, как вызвать уведомление, если новая запись будет вставлена ​​в базу данных с использованием PHP и MySQL.

Solutions Collecting From Web of "Уведомление о текущем обновлении изменений базы данных MYSQL PHP"

Самое простое – опросить БД каждые несколько секунд и посмотреть, были ли вставлены новые записи. Из-за кэширования запросов в БД это не должно существенно влиять на производительность БД.

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

Даже если это так, это предполагает, что ваш PHP-процесс является долговечным, так что он может позволить себе зависнуть для записи записи. Учитывая, что большинство PHP используется для веб-сайтов, где код работает, а затем выходит как можно быстрее, неясно, совместимо ли оно с тем, что у вас есть.

Если все изменения в базе данных сделаны PHP, я бы создал функцию-оболочку для mysql_query, и если тип запроса был INSERT, REPLACE, UPDATE или DELETE, я бы вызвал функцию для отправки соответствующего сообщения.

EDIT: Я забыл упомянуть, но вы также можете сделать что-то вроде следующего:

if (mysql_affected_rows($this->connection) > 0) { // mail(...) } 

Вы можете создать триггер, чем запускаться при обновлении. Можно запустить / уведомить внешний процесс, используя UDF (пользовательская функция). Нет никаких встроенных методов для этого, так что это пример загрузки плагина UDF, который сделает это за вас.

Google для «mysql udf sys_exec» или «mysql udf ipc».

Однажды я спрашиваю в форуме MySQL, если в MySQL существует событие вроде Firebird или Interbase, и я вижу, что кто-то отвечает Да (я действительно не уверен)

проверьте это: http://forums.mysql.com/read.php?84,3629,175177#msg-175177

Это можно сделать относительно легко, используя хранимые процедуры и триггеры. Я создал экран «Live View», на котором есть прокручиваемый экран, который обновляется новыми событиями из моей таблицы событий. Это может быть немного неудобно, но как только он бежит быстро.