我是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。 我希望你能帮忙。谢谢
答案 0 :(得分:1)
错误告诉您PHP无法弄清楚$db
是什么。
你加载了数据库吗?可能不是。
您可以使用
在模型中执行此操作$this->load->database();
或者可以使用
“自动加载”(See documentation)$autoload['libraries'] = array('database');
只有正确配置数据库才能加载数据库。 (Docs)