2017-12-10 12 views
-1

私はCodeIgniterの新機能です。プログラムを実行した後、毎回私は常に相続人(絵で)私のコード...Codeigniterの標準挿入クエリ

item_model.php(モデル)

class Item_model extends CI_Model 
{ 

    public function insertItem() 
    { 
     $code  = $this->input->post('prod_code'); 
     $name  = $this->input->post('prod_name'); 
     $category = $this->input->post('category'); 
     $price  = $this->input->post('price'); 

     $sql = "INSERT INTO `system`.`products` (`prod_code`,`prod_name`,`category_id`,`original_price`) VALUES (" 
      .$this->db->escapeString($code).", ".$this->db->escapeString($name) 
      .",(select category_id from category where category_name = " 
      .$this->db->escapeString($category)."), " 
      .$this->db->escapeString($price).")"; 

     $result = $this->db->query($sql); 
     if($this->db->affected_row() === 1) 
     { 
      $this->session->set_flashdata('successMessage', 
           '<div class="alert alert-success">New product has been registered</div>'); 
      redirect(base_url('new_item')); 
     } 
    } 
} 

php error

これを受けてるフォームを送信しますitem_con.php(コントローラ)

public function item_con() 
{ 
    $this->form_validation->set_rules('prod_name', 'Product Name', 'required|min_length[3]'); 
    $this->form_validation->set_rules('price', 'Original Price', 'required|integer'); 
    if($this->form_validation->run() == FALSE) 
    { 
     $this->session->set_flashdata('errorMessage', '<div class="alert alert-danger">'.validation_errors().'</div>'); 
     redirect(base_url('new_item')); 
    } 
    else 
    { 
     $this->load->model('item_model'); 
     $result = $this->item_model->insertItem(); 
     if($result) 
     { 
      $this->session->set_flashdata('successMessage', 
       '<div class="alert alert-success">New product has been registered</div>'); 
      redirect(base_url('new_item')); 
     } 
    } 
} 

商品の詳細を商品表に挿入したいだけです。 category_idは、製品テーブルの外部キーです。そして、私は製品の詳細を挿入するたびに、カテゴリテーブルから製品のcategory_idを読み込みたいと思います。 私はあなたが助けてくれることを願っています。ありがとう

+1

これはimgurではありません。ここにあなたのエラーをテキストとして投稿してください。 –

答えて

1

エラーは、PHPが何を$dbであるか把握できないことを伝えています。

データベースをロードしましたか?おそらくそうではありません。

あなたは

それがある場合にのみ動作し、データベースをロード
$autoload['libraries'] = array('database'); 

$this->load->database(); 

See documentation

それとも "自動ロード" することができます(See documentation)とモデルでそれを行うことができます

正しく設定されています。 (Docs

+0

はい、ありがとうございます。私はそれに気付かなかった。 –

関連する問題