我有這個表中獲取最後插入的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