12

CodeIgniter を使用してデータベースに行を挿入しようとしています。

私のデータベーステーブルはCustomer_Ordersで、フィールドはCustomerNameOrderLinesです。変数は正しく送信されています。

私のコントローラーは( sales.php):

function new_blank_order_summary() 
  {
      $data = array(
        'OrderLines'=>$this->input->post('orderlines'),
        'CustomerName'=>$this->input->post('customer')
          );
     $this->sales_model->order_summary_insert($data);

    $this->load->view('sales/new_blank_order_summary');
  }

私のモデルは( sales_model.php):

function order_summary_insert($data){
    $this->db->insert('Customer_Orders',$data);
}

ビューは正しくロードされますが、データはデータベースに挿入されません。

なぜそうしないのかについてのアイデアはありますか?

4

9 に答える 9

2

このようにコードを記述した方がよいでしょう。

コントローラーでこのコードを記述します。

    function new_blank_order_summary() {
     $query = $this->sales_model->order_summary_insert();
     if($query) {
        $this->load->view('sales/new_blank_order_summary'); 
    } else {
        $this->load->view('sales/data_insertion_failed');
    }
  }

そしてあなたのモデルで

function order_summary_insert() {
    $orderLines = trim(xss_clean($this->input->post('orderlines')));
    $customerName = trim(xss_clean($this->input->post('customer')));
    $data = array(
        'OrderLines'=>$orderLines,
        'CustomerName'=>$customerName
    );

    $this->db->insert('Customer_Orders',$data);
    return ($this->db->affected_rows() != 1) ? false : true;
}
于 2016-12-08T07:54:18.530 に答える
1

ここに表示されている内容に基づいて、$data配列では小文字のフィールド名を使用し、データベース テーブルでは大文字のフィールド名を使用しています。

于 2013-04-12T10:54:48.743 に答える
0

コントローラーを確認します。

function order()
    $OrderLines = $this->input->post('orderlines');
    $CustomerName = $this->input->post('customer');
    $data = array(
        'OrderLines' => $OrderLines,
        'CustomerName' =>$CustomerName
    ); 

    $this->db->insert('Customer_Orders', $data);
}
于 2017-09-18T08:00:30.267 に答える
0
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Cnt extends CI_Controller {


 public function insert_view()
 {
  $this->load->view('insert');
 }
 public function insert_data(){
  $name=$this->input->post('emp_name');
  $salary=$this->input->post('emp_salary');
  $arr=array(
   'emp_name'=>$name,
   'emp_salary'=>$salary
   );
  $resp=$this->Model->insert_data('emp1',$arr);
  echo "<script>alert('$resp')</script>";
  $this->insert_view();  
 }
}

詳細については、 http ://wheretodownloadcodeigniter.blogspot.com/2018/04/insert-using-codeigniter.html をご覧ください。

于 2018-04-22T14:54:52.343 に答える