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

时间:2016-08-27 15:43:44

标签: php mysql

我需要按编号插入主键'id'的自定义表,但我遇到了这个问题,例如

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

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

但是我想让它自动获得正确的ID来插入所以我做

2 / select *返回表中的当前行数,它返回5604(当我检查数据库有5605时,总是小1)。所以我+ 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);

例如,给定的数字是我的问题是那种格式。

1 个答案:

答案 0 :(得分:3)

只需将列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;