我需要按编号插入主键'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);
例如,给定的数字是我的问题是那种格式。
答案 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;