问题:当我添加id字段、主键auto_increment时,我的insert语句不再将记录插入到表中。
在添加id字段之前,我使用了一个具有唯一字符串的varchar字段作为主键。但是,现在我想添加一个直的id -整数,primary_key,auto_increment.似乎网络上应该有很多关于这方面的问题。
相反,我发现所有的问题都与$this->db->insert_id()有关。但是$this->db->insert_id()更像是一个读,对我的insert语句的成功没有任何作用。
现在,我构建一个数组调用$fielddata,并使用表单中的数据填充每个数组元素,如下所示(高度简化):
$fielddata['member_id'] = 'abcdefghi12345';
$fielddata['name'] = 'John Smith';
$fielddata['email'] = 'jsmith@gmail.com';
$this->db->insert('members', $fielddata);我尝试过这样的方法:
$fielddata['id'] = '';...or,
$fielddata['id'] = 0;...but什么都不管用。
更新:,我的问题是,我试图将一个数组元素设置为一个post元素,而实际上该元素并不是从表单传递的。由于某种原因,CodeIgniter没有抛出错误,所以我一直认为问题一定在查询行。当我将表单字段添加到我的表单中,并将所有数组元素匹配到所有表单元素(当然,省略了"Submit“和其他非表字段的隐藏字段)之后,insert就成功了。
发布于 2013-10-06 03:05:30
你能展示一下你的桌子结构吗?
测试表:
id (汽车公司10)
member_id (VARCHAR 10)
姓名(VARCHAR 10)
电邮(VARCHAR 15)
$fielddata['member_id'] = 'abcdefghi12345';
$fielddata['name'] = 'John Smith';
$fielddata['email'] = 'jsmith@gmail.com';
$this->db->insert('test', $fielddata);创建表名' test‘,并测试它是否有效。
发布于 2013-10-06 03:20:36
如果您的id是自动递增的,则不需要指定它。忽略这个字段,让MySQL来处理它。
https://stackoverflow.com/questions/19204085
复制相似问题