首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码点火器插入哪里的MySql表有自动增量id?

问代码点火器插入哪里的MySql表有自动增量id?
EN

Stack Overflow用户
提问于 2013-10-06 00:23:09
回答 2查看 4.3K关注 0票数 0

问题:当我添加id字段、主键auto_increment时,我的insert语句不再将记录插入到表中。

在添加id字段之前,我使用了一个具有唯一字符串的varchar字段作为主键。但是,现在我想添加一个直的id -整数,primary_key,auto_increment.似乎网络上应该有很多关于这方面的问题。

相反,我发现所有的问题都与$this->db->insert_id()有关。但是$this->db->insert_id()更像是一个读,对我的insert语句的成功没有任何作用。

现在,我构建一个数组调用$fielddata,并使用表单中的数据填充每个数组元素,如下所示(高度简化):

代码语言:javascript
复制
$fielddata['member_id'] = 'abcdefghi12345';
$fielddata['name'] = 'John Smith';
$fielddata['email'] = 'jsmith@gmail.com';

$this->db->insert('members', $fielddata);

我尝试过这样的方法:

代码语言:javascript
复制
$fielddata['id'] = '';

...or,

代码语言:javascript
复制
$fielddata['id'] = 0;

...but什么都不管用。

更新:,我的问题是,我试图将一个数组元素设置为一个post元素,而实际上该元素并不是从表单传递的。由于某种原因,CodeIgniter没有抛出错误,所以我一直认为问题一定在查询行。当我将表单字段添加到我的表单中,并将所有数组元素匹配到所有表单元素(当然,省略了"Submit“和其他非表字段的隐藏字段)之后,insert就成功了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-06 03:05:30

你能展示一下你的桌子结构吗?

测试表:

id (汽车公司10)

member_id (VARCHAR 10)

姓名(VARCHAR 10)

电邮(VARCHAR 15)

代码语言:javascript
复制
$fielddata['member_id'] = 'abcdefghi12345';
$fielddata['name'] = 'John Smith';
$fielddata['email'] = 'jsmith@gmail.com';

$this->db->insert('test', $fielddata);

创建表名' test‘,并测试它是否有效。

票数 1
EN

Stack Overflow用户

发布于 2013-10-06 03:20:36

如果您的id是自动递增的,则不需要指定它。忽略这个字段,让MySQL来处理它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19204085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档