数据不会插入到codeigniter中的数据库中

时间:2016-06-22 14:35:51

标签: php codeigniter

在我的代码中单击提交按钮后,表单数据不会插入到数据库中。甚至没有错误信息。但验证效果很好。 我想在一行中添加多个数据。我可以做到这一点。 任何人都可以帮助我。谢谢。

这是我的观点

<!--form open-->            
<?php 
$data = array(
     'id'        => 'frmadd',
     'class'       => 'form-inline',
     'role'   => 'form',
);
echo form_open('boq_controller/create', $data )
?>

<!--text box-->
        <td><input type="text" name="work_product_id" class="form-control" id="work_product_id" placeholder="" style="width:40px;" ></td>
        <td><input type="text" name="work_item_description" class="form-control" id="work_item_description" placeholder="" style="width:250px;"></td>
        <td><input type="text" name="quantity" id="" class="form-control val1" style="width:50px;" /></td>
        <td><select style=" height: 28px; width: 70px; border-radius: 2px;" name="unit" >
            <option value="" selected> </option>
            <option value="cube">cube</option>
            <option value="sq.ft">sq.ft</option>
            <option value="Cwts">Cwts</option>
            <option value="Gal" >Gal</option>
        </select></td>
        <td><input type="text" name="rate" class="form-control val2" style="width:60px;"/></td>
        <td><input type="text" name="laboure_hrs" id="" class="form-control val3" style="width:60px;"/></td>
        <td><input type="text"name="laboure_cost" id="" class="form-control val4" style="width:60px;"/></td>
        <td><input type="text" name="others" class="form-control" id="others" placeholder="" style="width:230px;"></td>
        <!--text box-->

div class="form-group">
                    <input type="submit" class="btn btn-success" id="btn btn-success" value="submit">
                </div>

<?php
echo form_close();
?>
<!--form_close-->

这是模型

class Boq_model extends CI_Model {
     public function create(){
        $data= array(

        $qty=$this->input->post('quentity'),
        $rate=$this->input->post('rate'),
        $laboure_hrs=$this->input->post('laboure_hrs'),
        $laboure_cost=$this->input->post('laboure_cost')
                );
       $this->db->insert('boq', $data);
            echo'<div class="alert alert-success">One record inserted Successfully</div>';
            exit;
        }
//            print_r($data);
//             die();




}

这是控制器

class Boq_controller extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('boq_model');
        $this->load->library('form_validation');

    }

public function create(){

//    validate fields
//            $this->form_validation->set_rules('work_product_id', 'Work Product Id', 'required');
//            $this->form_validation->set_rules('work_item_description', 'Work Item Description', 'required');
            $this->form_validation->set_rules('quantity', 'Quantity', 'required');
            $this->form_validation->set_rules('rate', 'Rate', 'required|numeric');
            $this->form_validation->set_rules('laboure_hrs', 'Laboure Hrs', 'required|numeric');
            $this->form_validation->set_rules('laboure_cost', 'Laboure Cost', 'required|numeric');

            if ($this->form_validation->run() == FALSE){
               echo'<div class="alert alert-danger">'.validation_errors().'</div>';
               exit;
            }
            else{
 $this->boq_model->create();
//        echo print_r($data);
//        die();
    }        

}     

}

2 个答案:

答案 0 :(得分:4)

这很不可思议:

   $data= array(

    $qty=$this->input->post('quentity'),
    $rate=$this->input->post('rate'),
    $laboure_hrs=$this->input->post('laboure_hrs'),
    $laboure_cost=$this->input->post('laboure_cost')
            );

你在数组中进行变量赋值,这意味着数组将只相当于

  $data = array(0,1,2,3);

没有CI的任何字段名称,无法知道值应该包含哪些字段。

也许你的意思更像是

$data = array(
   'qty' => $this->input->post('quantity')
   etc...
);

另外,quentity是什么?您无法在任何地方使用HTML表单。

答案 1 :(得分:3)

插入功能错误

$data = array(
    'qty' => $this->input->post('quantity'),
    'rate' => $this->input->post('rate'),
    'laboure_hrs' => $this->input->post('laboure_hrs'),
    'laboure_cost' => $this->input->post('laboure_cost')
);

$this->db->insert('boq', $data);

Inserting Data in codeigniter.com

  

注意:请注意输入名称。