mysql - Codeigniter - 输入后数组插入 mysql 数据库

标签 mysql arrays codeigniter

我不明白如何准确地将一行插入 MySQL 表中。如果我使用我的代码,我会为每个帖子添加一个新行。相反,我只想要一行包含所有值。

这是代码示例。

HTML:

echo form_open('account/update'); 
  echo "<p><label for='gender'>Gender</label>
 <input type='text' name='gender' id='gender'  value='".$gender."'  />  
  </p>
  <p>
  <label for='age'>Age</label>
  <input type='text' name='age' id='age' value='".$age."' />
  </p>
      <p>
  <label for='bio'>Biografie</label>
  <input type='text' name='bio' id='bio' value='".$bio."' />
  </p>
      <p>
  <label for='skills'>Skills</label>
  <input type='text' name='skills' id='skills' value='".$skills."' />
  </p>

  <p><input type='submit' value='Save' /></p>";


 echo form_close(); 

Controller :

function update() 
{   
    $userid = $this->session->userdata("userid");


    $datanew = array(
           'userid' => $this->session->userdata("userid"),
           'gender' => $this->input->post('gender'),
           'age' => $this->input->post('age'),
           'bio' => $this->input->post('bio') ,
           'skills' => $this->input->post('skills')
        );
$this->session->set_userdata($data);
    $this->load->model('model_account');
    $this->load->model("model_user");

    $this->model_account->profile_insert($datanew);

$this->load->view("change_avatar");
    redirect("account/show/".$this->session->userdata("userid"));
}

型号:

function profile_insert($datanew) 
{   

  $this->db->insert('profile', $datanew);

}

如果我提交 HTML 表单,我会得到 5 行。

最佳答案

这对我有用: 我将用户 ID 设置为唯一,并在 Controller 中创建了一个 if 语句,以便在插入和更新功能之间切换。

Controller :

    function update() 
{   

    $datanew = array(
           'userid' => $this->session->userdata("userid"),
           'gender' => $this->input->post('gender'),
           'age' => $this->input->post('age'),
           'bio' => $this->input->post('bio') ,
           'skills' => $this->input->post('skills')
        );

    $exists = $this->db->select('profile')->where('userid', $this->session->userdata("userid"));

    if($exists)
    {

      $this->session->set_userdata($datanew);
      $this->load->model('model_account');
      $this->load->model("model_user");
      $this->model_account->profile_update($datanew);
      $this->load->view("change_avatar");
      redirect("account/show/".$this->session->userdata("userid"));
    } 
      else
    {


      $this->session->set_userdata($datanew);
      $this->load->model('model_account');
      $this->load->model("model_user");
      $this->model_account->profile_insert($datanew);     
      $this->load->view("change_avatar");
      redirect("account/show/".$this->session->userdata("userid"));
    }   

}

型号:

function profile_insert($datanew) 
{   
        $this->db->insert('profile', $datanew);          
}

    function profile_update($datanew) 
{   
        $this->db->update('profile', $datanew);              
}

谢谢你帮助我

关于mysql - Codeigniter - 输入后数组插入 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16638059/

相关文章:

python - 找不到 openssl 库

python - Peewee 未设置最后插入 ID

javascript - 计算字符串中的所有字符

arrays - 将 MonadRandom 与堆栈中的 ST 计算相结合

C指针数组/指针数组消歧

php - S3/Cloudfront 下载限制

php - 双时间数据被插入到 mysql 中

mysql - 复制大量行,防止用户在此过程中创建或更新新记录

php - Codeigniter 在安装文件夹外的根目录上传文件

sql - SQL 中的表别名歧义是标准禁止的还是被实现阻止的?