Codeigniter中的标准插入查询

时间:2017-12-10 03:55:21

标签: php mysql codeigniter

我是CodeIgniter的新手。执行程序后,每次提交表单时我都会收到这个(在图片中)php error

继承我的代码......

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'));
        }
    }
}

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'));
        }
    }
}

我只想在products表中插入产品详细信息。 category_id是产品表中的外键。我希望每次插入产品详细信息时,它都会从类别表中读取产品的category_id。 我希望你能帮忙。谢谢

1 个答案:

答案 0 :(得分:1)

错误告诉您PHP无法弄清楚$db是什么。

你加载了数据库吗?可能不是。

您可以使用

在模型中执行此操作
$this->load->database();

See documentation

或者可以使用

“自动加载”(See documentation
$autoload['libraries'] = array('database');

只有正确配置数据库才能加载数据库。 (Docs