最后插入id /最新插入的id函数codeigniter

时间:2014-01-28 14:07:59

标签: php database codeigniter

代码:

查看

<html>
<body>
<?php echo form_open('samplecontroller/sample'); ?>
<input type="text" name="samplename"/> 
<input type="submit" value="go"/> 
<?php echo form_close(); ?>
</body>
</html>

控制器

<?php

Class samplecontroller extends CI_Controller
{

    public function __construct() 
    {
    parent::__construct();
    $this->load->model('Sample_insert');
    }

    function index()
    {
        $this->load->view('sample.php');

    }

    function show($data)
    {
        $this->load->view('sampleresult',$data);
    }

    function sample()
    {
            if($result = $this->Sample_insert->insert_into_sample())
            {
             $this->show($result);
            }

    }
}
?>

模型

<?php
Class Sample_insert extends CI_Model
{
    function insert_into_sample()
    {
        $sample = array(
            'samplename' => $this->input->post('samplename'),
            );      

        $this->db->insert('sample', $sample);

        $latest_id = $this->db->insert_id();

        return $latest_id;
    }
}
?>

流程是,我有2个视图。另一个只包含1个文本输入,然后转到控制器,然后控制器将其传递给模型,然后模型获取文本输入中的值,然后插入到我的样本表中。

示例表有2列,id(PK,AI)和名称

插入之后

在我的模型上。我添加了一行,返回$ latest_id。然后传递回我的控制器,然后将其传递给另一个只有

的视图
print_r($data);

毕竟,它显示错误。

  

消息:未定义的变量:数据

我不确定流程出错的地方或者我是否犯了语法错误。如果有人知道/ insert_id()的专家,你能指出我错在哪里吗?无论如何,香港专业教育学院做了我的研究,并在网上得到了如何错误的insert_id。我不确定它的真实与否,但我已经被重定向到论坛,其中insert_id返回null,有些人说它是一个bug。我希望它不是。

1 个答案:

答案 0 :(得分:0)

根据您的评论,您必须在控制器中进行一些更改。

function show($data)
    {
        $this->load->view('sampleresult',array("data"=>$data));
    }

您可以使用$data

的名称在视图中插入插入的ID

例如:

echo $data;

修改:根据您在回答中的评论,对于模型中的多行插入,请添加以下代码

$id_arr = array();
foreach($sample_data as $sample)
{

   $this->db->insert('sample', $sample);
   $id_arr[] = $this->db->insert_id();
}
return $id_arr;

现在在您看来,您将获得$ data

中的ID
foreach($data as $id)
{
   echo $id;
}