【问题标题】:how to get next sequence value using php?如何使用 php 获取下一个序列值?
【发布时间】:2019-06-20 14:11:11
【问题描述】:

为contract_seq选择下一个值

//它将返回序列1、2、3等的下一个值。我需要将此序列号插入数据库表。使用codeigniter我想将序列号插入数据库表

INSERT dbtest.contract (Contract_no) VALUES (NEXT VALUE FOR pestcontrol.contract_seq) // error Invalid object name 'pestcontrol.contract_seq'.

【问题讨论】:

  • 我已经创建了序列名称contract_seq

标签: php sql sql-server codeigniter


【解决方案1】:

我认为你还没有在模型中返回插入的 id。试试这个:

public function save_contract($data){ 
         $insert_id = 0;
       if($this->db->insert("contract", $data)){
        $insert_id = $this->db->insert_id();
        }
        return $insert_id;
    }

控制器

public function contract_submitted() {

   $data = array(
       'line_of_business_id' => $this->input->post('busi'),
       'Contact_name' => $this->input->post('name')
     );
       $lastID= $this->modal_create_contract->save_contract($data);
       if(!$lastID){
        //Show Error 
        }
       $data['last_id']=$lastID;
       $this->load->view('contract',$data);
    }

【讨论】:

  • 如何在视图页面中查看这个id?在ajax成功内
  • 你需要在ajax中调用这个方法contract_submitted() (URL: base_url()."/controllername/contract_submitted") 并将$this->load->view('contract',$data);替换成echo json_encode($data); return;。通过使用它,您将在 ajax 成功中获得 $data 数组。
  • 你的ajax调用是否调用了控制器的contract_submitted方法?
  • 使用最后插入的 id 时,如果两个系统同时尝试插入意味着我会得到错误的 id 对吗??
  • @becool,不,insert_id 函数仅返回在该连接上插入的最后一个 id。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 2014-10-08
相关资源
最近更新 更多