1

テーブルの行数を返す単純なクエリで奇妙な問題が発生しています。

これは常に正常に機能していました。

でも!昨日、テーブルの既存の行の列を更新する新しい関数をWebサイトに追加しました。この関数はadd_file()と呼ばれます

今私のウェブサイトはそれがどうあるべきかについて間違った価値を与えています:

現在、phpMyadminとSQLyogから見た「procedure」という76行が私のテーブルにあります。

しかし私のウェブサイトでは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

それで、更新機能は私のデータベースを壊していますか?

ありがとう

4

1 に答える 1

1

76行ありますか?
あなたの写真の列に表示されているのpatient_idは、自動インクリメントだと思います(または、少なくとも自動インクリメントの主キーを持つ患者テーブルにリンクされています)。
ただし、いくつかのDELETEクエリを実行した場合、70行しか表示されませんが、自動インクリメントIDは最後に使用された番号から始まります(あなたの場合は76から)。(codeigniter アクティブ レコードを使用せずに)

簡単なクエリを実行してみましたか? COUNTはいの場合、結果はどうでしたか?

于 2011-07-31T22:37:11.650 に答える