Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter插入MySql表具有自动增量id的位置?_Php_Mysql_Sql_Codeigniter 2 - Fatal编程技术网

Php Codeigniter插入MySql表具有自动增量id的位置?

Php Codeigniter插入MySql表具有自动增量id的位置?,php,mysql,sql,codeigniter-2,Php,Mysql,Sql,Codeigniter 2,问题:当我添加id字段、主键、自动增量时,我的insert语句不再将记录插入表中 在添加id字段之前,我使用了一个带有唯一字符串的varchar字段作为主键。但是,现在我想添加一个直接的id-整数,主键,自动递增。 网络上似乎有很多关于这个的问题 相反,我发现所有问题都与$this->db->insert_id()有关。但是$this->db->insert_id()更像是一个read,对我的insert语句的成功没有任何帮助 现在,我构造了一个数组调用$fielddata,并用表单中的数据填充

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

在添加id字段之前,我使用了一个带有唯一字符串的varchar字段作为主键。但是,现在我想添加一个直接的id-整数,主键,自动递增。 网络上似乎有很多关于这个的问题

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

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

我尝试过以下方法:

$fielddata['id'] = '';
…或

$fielddata['id'] = 0;
……但什么都不管用

更新:
我的问题是,我试图将一个数组元素设置为一个post元素,而实际上我并没有从表单传递该元素。由于某种原因,CodeIgniter没有抛出错误,所以我一直认为问题一定出在查询行上。事实并非如此。一旦我将表单字段添加到表单中,并将所有数组元素与所有表单元素进行匹配(当然不包括“提交”和其他非表字段的隐藏字段),插入操作就起作用了。

能否显示表结构

测试表:
id(汽车公司10)
成员id(VARCHAR 10)
名称(VARCHAR 10)
电子邮件(VARCHAR 15)


创建表名“test”并测试它是否工作。

能否显示表结构

测试表:
id(汽车公司10)
成员id(VARCHAR 10)
名称(VARCHAR 10)
电子邮件(VARCHAR 15)


创建表名“test”并测试它是否工作。

如果它是自动递增的,则无需指定id。只要忽略该字段,让MySQL来处理它。

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

您确定id现在是表的主键吗?你的桌子现在是什么样子?@xiankai,是的,id是我桌子的主键。和往常一样,我的问题是插入行之前的错误,与表/数据库无关。我本来打算删除这个问题,但我认为其他人会找到它并使用它来发现他们自己的编码错误,他们认为这是sql错误,但实际上是数据准备错误。您确定id现在是表的主键吗?你的桌子现在是什么样子?@xiankai,是的,id是我桌子的主键。和往常一样,我的问题是插入行之前的错误,与表/数据库无关。我本来打算删除这个问题,但我想其他人会找到它,并用它来发现他们自己的编码错误,他们认为这是sql错误,但实际上是数据准备错误。我的问题是,我试图将数组元素设置为post元素,而我实际上并没有从表单传递该元素。由于某种原因,CodeIgniter没有抛出错误,所以我一直认为问题一定出在查询行上。事实并非如此。一旦我将表单字段添加到表单中,并将所有数组元素与所有表单元素相匹配(当然不包括“Submit”和其他非表字段的隐藏字段),插入就起作用了。谢谢。我的问题是我试图将一个数组元素设置为一个post元素,而实际上我并没有从表单传递它。由于某种原因,CodeIgniter没有抛出错误,所以我一直认为问题一定出在查询行上。事实并非如此。一旦我将表单字段添加到表单中,并将所有数组元素与所有表单元素相匹配(当然不包括“Submit”和其他非表字段的隐藏字段),插入就起作用了。非常感谢。
$fielddata['id'] = 0;
$fielddata['member_id'] = 'abcdefghi12345';
$fielddata['name'] = 'John Smith';
$fielddata['email'] = 'jsmith@gmail.com';

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