【发布时间】:2014-05-15 00:55:45
【问题描述】:
我正在尝试使用 php/joomla 中的函数重新索引表... 它什么也不做。我也不能用一个字符串来制作整套 slq 命令。
function ReNumberID($TABLENAME ,$COLUMNNAME) {
$sql = "set @a=0; " ;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$db->setQuery($sql);
$db->execute();
$sql2 = "UPDATE `".$TABLENAME."` SET `".$COLUMNNAME."`=(@a:=@a+1); " ;
$db->setQuery($sql2);
$db->execute();
$sql3 = "SELECT * FROM `".$TABLENAME."` WHERE 1" ;
$db->setQuery($sql3);
$db->execute();
$newindexnumber = $db->getNumRows();
$newindexnumber++ ;
$sql4 = "ALTER TABLE `".$TABLENAME."` auto_increment = ".$newindexnumber." ;";
$db->setQuery($sql4);
$db->execute();
}
【问题讨论】:
-
如果您将所有内容重新编号为下一个值,您可能会遇到连续编号的行,其中重新编号第一个将与第二个冲突并且查询可能会中止。您需要重新编号超出现有范围,然后重新编号到您想要的范围。但是,我不得不问:为什么?
标签: php mysql joomla joomla2.5