为什么我插入数据提示我You must use the "set" method
#view<form action="<?=site_url()?>/category/insert" method="post">
<table border="0" cellpadding="2" cellspacing="1" style="width:100%">
<tr>
<td nowrap align="right" width="13%">上级栏目:</td>
<td width="41%"><select name="pid"><option value="0">≡ 作为一级栏目 ≡</option></select></td>
</tr>
<tr>
<td nowrap align="right" height="50px">栏目名称:</td>
<td colspan="3">
<input type="text" name="title" />
<?php echo form_error('title','<span class="form-error">','</span>'); ?>
</td>
</tr>
</table>
<input type="submit" value="提交" name="submit" class="inputbutton" />
<input type="button" name="submit2" value="返回" class="inputbutton" />
#controller
function insert()
{
$this->lang->load('form', 'chinese');
$this->load->library('form_validation');
$this->form_validation->set_rules('title', 'lang:form_title', 'trim|required');
if ($this->form_validation->run() === false)
{
$this->load->view('admin/addcate');
}
else
{
$this->load->model('admin/Category_model', '', true);
$this->Category_model->insert();
}
}
#model
function insert()
{
$this->title = $this->input->post('title');
$this->pid = $this->input->post('pid');
$this->db->insert('dj2_category', $this);
} #model
function insert($arr)
{
$this->db->insert('dj2_category', $arr);
}
#c
$title = $this->input->post('title');
$pid = $this->input->post('pid');
$arr = array('title'=>$title,'pid'=>$pid);
$this->Category_model->insert($arr);
改成我这样绝对不会报错...
获取表达数据应该直接写在C层
你报错是因为$this->db->insert('dj2_category', $this);
$this 数组里必须是array('字段'=>值) 你传的参数不对啊
$data->title = $this->input->post('title');
$data->pid = $this->input->post('pid');
$this->db->insert('dj2_category', $data); 不是你们两说的都不对,我看了一些外国人的说法,明白了,我的数据库id是自增的,我就插入pid和title没有插入id,所以才报的所,我在model里改成这样就可以了
function insert()
{
$this->id = 11;
$this->title = $this->input->post('title');
$this->pid = $this->input->post('pid');
$this->db->insert('dj2_category', $this);
}
但我郁闷不会每次我插入都要取数据库取最大的id吧。。。晕 可以了啊啊啊啊 原来是我的model里我把这几个字段设置成private就不行,不知道为什么,现在把这几个属性设成public就可以了。
页:
[1]