php - 更新语句破坏数据库

标签 php mysql codeigniter codeigniter-2

我想弄清楚这里出了什么问题,但真的不确定。我有一个用户站点,当用户编辑详细信息时,它似乎会用这些详细信息覆盖所有其他记录。这并不总是发生,但有时会发生(当然结果是困惑!)。这是更新代码

public function update_edit()
    {
            /* echo " //// INSIDE UPDATE EDIT "; */

             $this->form_validation->set_rules('fullname', 'الاسم الكامل', 'isset|required|min_length[6]|max_length[100]');

                //check that there are no form validation errors
                if($this->form_validation->run() == FALSE)
                {   
                    /* echo " //// INSIDE FORM VALIDATION"; */
                    if(($this->session->userdata('username')!=""))
                    {
                                            /* echo " //// INSIDE SESSION VALIDATION"; */
                        $data = array();
                        $data = $this->profileModel->load_user_editable_data($this->session->userdata('username'));
                        $this->load->view('layout/header');
                        $this->load->view('profile_edit', $data);
                        $this->load->view('layout/footer');
                        //$this->load->view('thankyou');
                    }else{
                        //$this->load->view('login');
                        $this->login();
                    }
                }else{
                    $complete = $this->profileModel->update_profile($this->session->userdata('username')); 
                    if($complete == 1)
                    {       
                        $this->load->view('layout/header');
                        $this->load->view('update_complete');
                        $this->load->view('layout/footer');
                    }
                }

    }

这是模型代码:

public function update_profile($username)
    {
        $config['upload_path']   = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png|jpeg';
        $this->load->library('upload', $config);
        $fullImagePath;
        if (isset($_FILES['profilepic']) && !empty($_FILES['profilepic']['name']))
        {
          if ($this->upload->do_upload('profilepic'))
          {
            $upload_data    = $this->upload->data();
            $fullImagePath = '/uploads/' . $upload_data['file_name']; 
           }
        }else{
            $fullImagePath = $this->session->userdata('profilepic');
        }
            $data = array(
                   'fullname' => $this->input->post('fullname'),
                   'email' => $this->input->post('email'),
                   'mobile' => $this->input->post('mobile'),
                   'telephone' => $this->input->post('telephone'),
                   'about' => $this->input->post('about'),
                   'address' => $this->input->post('address'),
                   'profilepic' => $fullImagePath,
                );

            $this->db->where('username', $username);
            $this->db->update('free_user_members', $data); 

        return 1;
    }

这是表格:

<div class="content_container">


    <div id="rt-main" class="mb8-sa4">
      <div class="rt-container">
      <div class="rt-grid-12">

        <div dir="rtl" class="homecontent">



            <?php echo validation_errors(); ?>
            <?php echo form_open_multipart('profile/update_edit'); ?>

            <? $this->session->set_userdata('profilepic', $profilepic); ?>

            <h5>الاسم الكامل</h5>
            <? $data = array(
                          'name'        => 'fullname',
                          'id'          => 'round_input',
                          'value'       => $fullname,
                        );

            echo form_input($data); ?>


            <h5>الايميل</h5>

            <? $data = array(
                          'name'        => 'email',
                          'id'          => 'round_input',
                          'value'       => $email,
                          'size' => '70'
                        );

            echo form_input($data); ?>

            <h5>الجوال</h5>
            <? $data = array(
                          'name'        => 'mobile',
                          'id'          => 'round_input',
                          'value'       => $mobile,
                        );

            echo form_input($data); ?>

            <h5>هاتف</h5>
            <? $data = array(
                          'name'        => 'telephone',
                          'id'          => 'round_input',
                          'value'       => $telephone,
                        );

            echo form_input($data); ?>

            <h5>العنوان</h5>
            <? $data = array(
                          'name'        => 'address',
                          'id'          => 'round_input',
                          'value'       => $address,
                          'size' => '70'
                        );

            echo form_input($data); ?>

            <h5>نبذة عني</h5>
            <? $data = array(
                          'name'        => 'about',
                          'id'          => 'round_input',
                          'value'       => $about,
                          'rows' => '3',
                          'cols' => '40',
                        );

            echo form_textarea($data); ?>

            <h5>الصورة الشخصية</h5>
            <img width="300" height="300" src="<? echo $profilepic; ?>" />

            <h5>إختيار صورة جديدة</h5>
            <? 
            $data = array(
                          'name'        => 'profilepic',
                          'id'          => 'profilepic',
                        );

            echo form_upload($data);
             ?>

            <div><input type="submit" value="احفظ التغييرات" /></div>

            </form>
 </div>
          <p>&nbsp; </p>
        </div>
      </div>
        <div class="clear"></div>
      </div>
    </div>

如果有人告诉我我正在做的事情时不时会导致那种困惑,我将非常感激。

问候,

最佳答案

您必须添加代码来检查 session 中的用户名是否存在。

如果 session 超时,codeigniter 将返回 FALSE

username = false 上查询 MySQL 将返回所有行。

关于php - 更新语句破坏数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16556365/

相关文章:

mysql - 活跃组连接Mysql

javascript - 如何让表单字段动态增加,然后通过post方法提交

php - Yii CRedisCache.php 将使用哪种 redis 数据类型进行缓存存储?

php - 如何安装依赖wamp的php?

php - 重启浏览器后 Cookie 被删除

php - 使用 jQuery 按 <td> 过滤表中的 mySQL 查询结果?

javascript - 如何禁用浏览器功能和快捷键进行全屏在线考试?

python - Django for循环显示数据库中的所有对象

不影响其他操作的MySql查询

php - Codeigniter 将表单字段合并到数据库中