Update log

espada

Guest
Update log

Чтобы не мучиться с обновлением базы, умные люди советуют использовать Update log. Но из того, что я понял в мануале, явствует, что журнал обновлений создается при работе с mysql.exe с некими ключами.

Между тем, я в локале под виндами mysql не использую. Работаю через phpMyAdmin и собственную добавлялку на пхп.

Отсюда вопрос: как быть в этом случае? Есть ли способ средствами пхп заставить MySQL создавать и вести журнал обновлений, а если нет, то что можно еще придумать?

Я попробовал делать лог своими силами, записывая в отдельный файл все свои запросы. Но из этого лога грузить данные в базу на сервере не получается из-за повторяющихся значений по уникальному индексу.

Почему-то при попытке заменить существующую запись другой с теми же значениями уникального поля пхп и SQL ведут себя по разному. Когда такой запрос приходит от пхп-скрипта, он просто игнорируется и остается старая запись.

А если вводить тот же запрос через mysql, выдается ошибка "повторяющиеся значения для уникального ключа".
 

espada

Guest
Ура, получилось. Правда, только для своего скрипта, добавляющего данные. Как это сделать в phpMyAdmin, не знаю по-прежнему. Догадываюсь, что примерно так же, но как-то больно хитро там все устроено - мне этой логики не понять.

Если же кому-то понадобится, то я сделал так:

В скрипте, обрабатывающем данные, введенные через форму, перед блоком запросов открывается файл:

$fp=fopen("update.log","a");

А затем после каждого mysql_query в этот файл пишется переменная, которая использована в самом запросе:

$sql_into="INSERT INTO table VALUES (данные);";
mysql_query($sql_into,$conn_id);
fwrite($fp,$sql_into."\r\n");

А чтобы при загрузке из этого мини-дампа mysql игнорировал повторы, надо запускать его с ключом -f.
 
Сверху