2011-01-16 4 views
1

У меня есть база данных mysql с 12 000 записей, то, что мне нужно, - это возможность отслеживать столбец в базе данных и если/когда столбец изменен для любой записи, он отправляет мне электронное письмо с подробностями ,Мониторинг базы данных MySQL с использованием PHP

EDIT: У меня есть доступ к mysql db, но не к скрипту, который работает с ним. Поэтому он должен следить за его изменениями ...

ответ

0

попробовать что-то похожее на this, вы можете изменить функцию, чтобы отправить вам письмо, и если запрос имеет insert и TABLE_NAME или COLUMN_NAME в нем

0

установить одну колонку быть датой.

Это будет обновляться при каждом изменении строки. Там вы можете запустить sql-запрос либо с помощью задания cron, либо после каждых нескольких php-запросов, чтобы вернуть вам список измененных строк с момента последней проверки.

4

Вы можете создать триггеры в таблице, если у них есть версия MySQL. Затем триггер может вызвать любую функцию, которую вы хотите создать. Триггер имеет то преимущество, что любая вставка или удаление или любое обновление столбца приведет к его срабатыванию; вам не придется менять какой-либо другой код, чтобы это произошло. Смотрите здесь для более ... http://dev.mysql.com/doc/refman/5.0/en/triggers.html

+0

+1 для обозначения триггера. Триггер - это предписанный способ отслеживания таких событий. –

+0

Знаете ли вы, как отправить электронное письмо с триггера? –

+0

@Sarwar, нет, я этого не делаю. Я действительно не знаю, как отправить электронное письмо из любой части кода. Но триггер может вызвать хранимую процедуру, поэтому все, что можно сделать из хранимой процедуры, можно выполнить с помощью триггера. Извините, я не могу больше помочь. –

2
  • Создать триггер обновления
  • Создайте другую таблицу (назовем ее cron_table), где триггер будет вставлять информацию обновленного ряда (может быть старое значение, новое значение и т. д.)
  • Установите cron, который вызовет скрипт, который проверит cron_table и отправит электронное сообщение, если какая-либо запись будет найдена. Интервал Cron может быть настроен в соответствии с потребностями.

--- Если вы можете отправить по электронной почте от триггера, то не было бы никакой необходимости в отдельной таблице и хрон ---

0

вы должны понимать языка манипулирования данными (DML) триггеров в моей SQL : используйте

CREATE TRIGGER salary_trigger 
    BEFORE UPDATE ON table_name 
    REFERENCING NEW ROW AS n, OLD ROW AS o 
    FOR EACH ROW 
    IF n.columnName <> o.columnname THEN 

    END IF; 
; 
+2

Как отправляется электронное письмо? –

0

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

Запуск задания cron на вашем столе, которое отправит вам электронное письмо.

Смежные вопросы