我有这个表中获取最后插入的ID,以MySQL表多西:如何插入后,主键
Id1 Id2 Id3 Id4 Name
1 1 1 1 test
1 1 1 2 test2
1 2 1 1 test
1 2 1 2 test2
ID4为:
CREATE TABLE `test` (
`Id1` int(11) unsigned NOT NULL,
`Id2` int(11) unsigned NOT NULL,
`Id3` int(11) unsigned NOT NULL,
`Id4` int(11) unsigned NOT NULL AUTO_INCREMENT,
`Name` varchar(255) NOT NULL,
PRIMARY KEY (`Id1`,`Id2`,`Id3`,`Id4`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
INSERT INTO `test` (`Id1`, `Id2`, `Id3`, `Name`) VALUES (1, 1, 1, 'test')
INSERT INTO `test` (`Id1`, `Id2`, `Id3`, `Name`) VALUES (1, 1, 1, 'test2')
INSERT INTO `test` (`Id1`, `Id2`, `Id3`, `Name`) VALUES (1, 2, 1, 'test')
INSERT INTO `test` (`Id1`, `Id2`, `Id3`, `Name`) VALUES (1, 2, 1, 'test2')
创建日期看起来像这样的表格之后按预期增加,但我有问题,使用PHP mysqli插入Id4。这是我使用的代码:
$db = new mysqli('host', 'user', 'pass', 'db');
$db->query("INSERT INTO `test` (`Id1`, `Id2`, `Id3`, `Name`) VALUES (1, 1, 1, 'test')");
var_dump($db->insert_id);
我得到的结果
int(0)
的结果应该是int(1)
但我得到零无缘无故。有任何想法吗?
您可以添加'AUTO_INCREMENT = 1'在2002年底'创建table'(之后 '动态'),并给它一个新的尝试? – Jeff
@ Fred-ii-但这正是他刚刚做的,对他不起作用......或者我错过了什么?他正在使用面向对象风格,这与您刚刚为程序风格发布的内容是同义的。 – Poiz
@ Fred-ii-:他确实有一个具有AUTO_INCREMENT属性的列,对吗? – Jeff