Странная проблема с базой данных! PHP MySQL Codeigniter - PullRequest
1 голос
/ 31 июля 2011

У меня странная проблема с простым запросом, который возвращает количество строк в таблице.

Это всегда работало нормально и правильно.

Тем не менее! Вчера я добавил на свой сайт новую функцию, которая обновляет столбец в существующих строках в моей таблице. Эта функция называется add_file ()

Теперь мой веб-сайт дает неправильное значение того, что должно быть:

В настоящее время в моей таблице есть 76 строк, называемых "процедурами", просматриваемыми из phpMyadmin и SQLyog.

Однако на моем сайте говорится, что есть 70 .

Машины НЕ ЛОЖЬ, так что, скорее всего, я это делаю

У меня есть догадка, что моя функция с именем add_file () виновата.

Эта функция обновляет столбец «edocument» в моей таблице процедур, если пользователь загружает файл, соответствующий этой записи. Чтобы система знала, как называется этот файл, и может создать для него URL-адрес.

        public function add_filename($file)
        {

            //This is the extension of the file retrieved from an array
            $extension = $file['upload_data']['file_ext'];


            //variable for updating row which is constructed from Username+Filename+Extension
            $filename = array
            (
                'edocument' => ($this->session->userdata('name').$this->input->post('record_id')).$extension
            );

            //find row that matches the row just submitted by user
            $this->db->where('procedure_id',$this->input->post('record_id'));
            //update that row with the filename of the document uploaded
            $this->db->update('procedure', $filename); 

        }

Если вы посмотрите на этот скриншот, вы увидите, что мой столбец "edocument" из 72-76 имеет значения.

http://i.imgur.com/pBzVs.jpg

Так функция обновления нарушает мою базу данных?

Спасибо

1 Ответ

1 голос
/ 01 августа 2011

Вы уверены, что есть 76 строк?
Я вижу в столбце изображения patient_id, я полагаю, что это автоматическое увеличение (или, по крайней мере, оно связано с таблицей пациентов, у которой есть первичный ключ автоматического увеличения).
Но если вы выполнили несколько DELETE запросов, вы увидите только 70 строк, но идентификатор автоматического увеличения будет начинаться с последнего использованного числа (с 76 в вашем случае).

Вы пробовали выполнить простой COUNT запрос (без использования активной записи codeigniter)?Если да, каков был результат?

...