1

Тема: Исчезают данные из БД

Подскажите в чём может быть проблема?
Есть БД, в ней несколько таблиц, включая таблицу Users. В процессе регистрации нового пользователя он добавляется в БД в таблицу Users. Но есть 1 нюанс,  пользователь появляется ровно на секунду, патом исчезает. Проверка PHP кода ни к чему не привела, код в порядке. В чем ещё может быть проблема?

2

Re: Исчезают данные из БД

McLotos сказал:

пользователь появляется ровно на секунду, патом исчезает

Очень странно, но вариантов только два:
1) В БД есть событие на удаление пользователя, которое срабатывает по таймеру; это может быть триггер, например.
2) Либо запускается скрипт на удаление записи. Скрипт может запускаться подключением к любому файлу либо через Cron.

Попробуйте посмотреть в записях доступа веб-сервера (access.log) какие скрипты выполняются в промежутке между созданием и удалением пользователя.

3

Re: Исчезают данные из БД

Таблица triggers пустая, в ней ничего нет.
а вот что-то access.log, точнее его содержимое ни о чем мне не говорит sad

4

Re: Исчезают данные из БД

McLotos сказал:

Таблица triggers пустая, в ней ничего нет.
а вот что-то access.log, точнее его содержимое ни о чем мне не говорит sad

Даже не знаю что посоветовать. Попробуйте добавить запись в БД через phpMyAdmin и посмотрите будет ли она удалена. Если удалена не будет, значит все-таки проблема в скрипте и надо искать DELETE FROM.

5 (изменено: McLotos, 2011-06-03 06:57:13)

Re: Исчезают данные из БД

А можете пояснить? При экспорте БД, в которой находится эта косячная таблица, к ней (к таблице) приписаны атрибуты, значение которых я не понял. Вот например
CHECKSUM=1
DELAY_KEY_WRITE=1
ROW_FORMAT=DYNAMIC

а ещё параметры самой БД вот такие

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

Это может как-то повлиять?

Ну в общем я убрал
CHECKSUM=1
DELAY_KEY_WRITE=1
ROW_FORMAT=DYNAMIC

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

6

Re: Исчезают данные из БД

Возможно так странно себя ведет DELAY_KEY_WRITE=1. По идее, данный параметр должен делать отложенную запись ключа, но как механизм ведет себя в конкретной таблице - сказать сложно. Некоторые странности может прояснить вывод запроса ANALYZE TABLE.