代码:
<?php
$this->db->select('*');
$this->db->from('bugs');
$where = "project_name = '".$project."'";
$this->db->where($where);
$sql = $this->db->get();
$res = $sql->num_rows();
if($res === 0)
{
$i = 1;
foreach ($bug as $row)
{
echo $i;
}
}
else
{
$i = 1;
foreach ($bug as $row)
{
echo ++$i;
}
}
?>
$data = array(
'project_name'=>$this->input->post('project'),
'bug_id'=>$this->input->post('bug_id'),
);
$query = $this->db->insert('bugs',$data);
在这段代码中我有一个表名bug,我有一个列,即bug_id。现在,我想将数据插入到我的表中,如果表行没有值,则插入bug_id = 1,然后插入2然后3等等。但是现在当我点击提交按钮时,它会插入bug_id = 1然后输入2但是当我点击第三个时它会再次插入bug_id 2。那么,我该如何解决这个问题呢?请帮帮我。
谢谢
答案 0 :(得分:0)
MySQL集成了AUTO_INCREMENT。您可以登录phpMyAdmin并通过单击编辑更改bug_id字段的属性,然后选择&#34; A_I&#34;字段。
或者您可以使用SQL查询执行此操作:
ALTER TABLE YOUR_TABLE MODIFY bug_id INTEGER NOT NULL AUTO_INCREMENT;
答案 1 :(得分:0)
如果@Twinfriends回答并不符合您的需求(但这应该是正确的方法,您不应该重新发明轮子)那么问题可能就在于:
$data = array(
'project_name'=>$this->input->post('project'),
'bug_id'=>$this->input->post('bug_id'),
);
$query = $this->db->insert('bugs',$data);
由于您实际上使用$this->input->post('bug_id')
作为新ID,或许您想使用其他内容?
你的$ bug var来自哪里?为了确保不会出现重复的ID或错误的ID,您可以在MySql查询中添加类似&#34; ORDER BY bug_id DESC LIMIT 1&#34; (这样你获得最高bug_id的结果就是1行)然后只使用那个结果+ 1作为新的id