我有一个工作正常的代码,但我想插入id =行数+ 1 - mediamall_favourite_media表
我想这样做,因为现在我在删除所有行时设置了auto_increment选项。插入下一行的最后一个数字。例如 - 我插入50行,然后我删除它们然后如果我再插入一行(虽然表是空的),id是51 ...
$user =& JFactory::getUser();
$db2 =& JFactory::getDBO();
$mediaid = $_POST['addMediaId'];
//$delid = $_POST['delRow'];
if(isset($_POST['submitCheck']) and $_POST['submitCheck'] == '1') {
$query = ' INSERT INTO `#__mediamall_favourite_media` (`id`, `userid`, `mediaid`) VALUES (NULL,"'.$user->id.'","'.$mediaid.'")';
}
elseif(isset($_POST['submitCheck']) and $_POST['submitCheck'] == '0') {
$query = ' DELETE FROM `#__mediamall_favourite_media` WHERE `id` = "'.$delid.'" ';
}
if($query) {
$db2->setQuery($query);
$db2->query();
}
拜托,您有任何解决方案吗?
答案 0 :(得分:1)
不,你不能在事务数据库中这样做。这是场景:
max(id) + 1
作为新ID(比如101)。max(id) + 1
作为新ID(比如101)。(而不是max(id)+1
您可以使用count(*)+1
- 结果将是相同的。)
尝试重用漏洞也不起作用:
为了使这张照片更复杂,想象一下它不是2,而是说10个并发交易同时工作?
换句话说,不要再与它斗争并与之一起努力了。