奇怪的数据库问题! PHP MySQL Codeigniter

时间:2011-07-31 17:09:38

标签: php mysql codeigniter mysql-num-rows

我遇到一个奇怪的问题,一个简单的查询返回了表中的行数。

这总是正常而且正确。

然而!昨天我在我的网站上添加了一个新功能,用于更新表格中现有行的列。此函数名为 add_file()

现在我的网站给出了错误的价值:

目前我的表中有 76 行,名为“procedure”,从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); 

        }

如果您查看此屏幕截图,您会看到72-76的“edocument”列中包含值。

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

更新功能是否会破坏我的数据库?

由于

1 个答案:

答案 0 :(得分:1)

你确定有76行吗? 我在你的图片栏patient_id中看到,我猜它是自动增量(或者至少它与患者表有自动增量主键的链接)。
但是,如果您运行了一些DELETE个查询,则只能看到70行,但自动增量ID将从上次使用的数字开始(在您的情况下为76)。

您是否尝试过运行简单的COUNT查询(不使用codeigniter活动记录)?如果是,结果是什么?