自动主键插入自定义表$wpdb


Auto primary key insert custom table $wpdb

我需要插入到自定义表,主键'id'按数字,但我得到了这个问题,例如

我的表中有5605行(以id = 1开始),所以我必须设置当前id = 5606来插入。

1/我手动设置$data['id'] = 5606插入它,它工作正常。插入id为5606的当前行

但是我想让它自动插入正确的id所以我输入

2/select *返回表中的当前行数,它返回5604(当我检查数据库有5605时总是小1)。所以I + 2,然后插入。在表中插入3次,5606 5607 5608。请帮助我这里是我的代码

 $data = array(
  'name' => 'naomi',
  'ability'  => 'walk',
 );
 $wpdb->get_results("SELECT *  FROM contest");
 $numid = $wpdb->num_rows; 
 $numid +=2;
 $data['id'] = $numid;
 $wpdb->insert('contest', $data);

给定的数字是,例如,我的问题是在那个格式

只是声明列id(或任何你使用的主键)为AUTO_INCREMENT(在MySQL)或SERIAL(在PostgreSQL),并插入所有其他列,但你的主键。例子:

CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
);
INSERT INTO persons (LastName,FirstName,Address,City) VALUES (
'Sample','Person','Sample-street','Sample-city'
);

多!你不应该对主键使用任何手动插入,因为它会在处理不成功的查询等方面给你带来很多问题。

第二部分。返回表中的行数,只需使用

SELECT COUNT(id) FROM persons;