如何使用循环向表中插入数据。?

Posted

技术标签:

【中文标题】如何使用循环向表中插入数据。?【英文标题】:How to insert data to table using loop.? 【发布时间】:2017-09-30 18:03:40 【问题描述】:

我想使用循环在数据库表中插入数据。为此,我首先需要从user profile 表中获取Account_id 的数据。当用户在我的网站上注册时,他/她的姓名表会自动创建,我将此表名存储在Account_id。这就是为什么我必须需要这个领域。

首先我得到所有注册用户Account_id 的值。然后我在模型中使用 for 循环搜索此表。

找到这张表后,应该插入行,就像动态创建的一样

$data = array(
    'Paper_Name' => $paper_name,
    'Paper_Type' => $paper_type,
    'paid_type' => $paid_type
);

这是我的模型代码。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class create_main_table_model extends CI_Model 

    function login($data)

        $query = $this->db->insert('main_table', $data);    

        $update_userdata = $this->db->select('Account_id')->from('userprofile')->get();

                for($i =0; $i < $update_userdata->num_rows(); $i++)

                        $query = $this->db->insert($update_userdata[$i], $data);    

                

        return ($this->db->affected_rows() > 0) ? true : false;
    

?>

我想将数据插入到Account_id 中可用的表中。 如果这可以通过其他方式实现,请告诉我。

【问题讨论】:

问题是??? $this->db->insert ($table, $data);这是在 codeigniter 中插入查询 你几乎正确的改变这一行 $query = $this->db->insert($update_userdata[$i]->Account_id, $data); 您需要更新已经存在的行还是需要新行? 你试过我的回答了吗 【参考方案1】:

你几乎正确的改变这一行得到table name

$update_userdata = $this->db->$update_userdata->result();
$query = $this->db->insert($update_userdata[$i]->Account_id, $data);

【讨论】:

在使用这个之前我必须得到结果。赞$this-&gt;db-&gt;$update_userdata-&gt;result();【参考方案2】:

这是完美的解决方案。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class create_main_table_model extends CI_Model 

    function login($data)

        $pass_data = $data;
        $query = $this->db->insert('main_table', $data);    

        $update_userdata = $this->db->select('Account_id')->from('userprofile')->get();

                for($i =0; $i < $update_userdata->num_rows(); $i++)
                        $data1 = $update_userdata->result();
                        $query = $this->db->insert($data1[$i]->Account_id, $pass_data); 

                

        return ($this->db->affected_rows() > 0) ? true : false;
    

?>

【讨论】:

【参考方案3】:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class create_main_table_model extends CI_Model 

    function login($data)

        $query = $this->db->insert('main_table', $data);    

        $update_userdata = $this->db->select('Account_id')->from('userprofile')->get();

                for($i =0; $i < $update_userdata->num_rows(); $i++)

                $data['Account_id']=$update_userdata[$i]->Account_id;

                $query = $this->db->insert('table_name', $data);    

                

        return ($this->db->affected_rows() > 0) ? true : false;
    

?>

【讨论】:

我想再次告诉你,表名是Account_id。所以用它作为表名

以上是关于如何使用循环向表中插入数据。?的主要内容,如果未能解决你的问题,请参考以下文章

2 个要求:1)用 FORALL 替换多个 FOR 循环 2)在向表中插入数据时使用 IF-THEN-ELSE 条件

向表中批量插入数据

如何向表中插入数据以及如何更新删除表中的数据

如何使用mysql语句向表中插入数据

oracle/sql中如何根据条件向表中插入数据

如何提高在SSIS中向表中插入数据的性能