-4

我有一个脚本可以在 MySQL 的用户数据库中将重复名称重命名为“$name2”,但由于某种原因,每个重复用户名都出现错误“未定义索引”,并且未使用“foreach”循环。代码如下:

$result = mysql_query("select name, count(*) cnt from users group by name having cnt > 1 and name!=''");
$rowsCnt = array();
while($row = mysql_fetch_assoc($result)){
    $rows[] = $row;
    $rowsCnt[ $row['name'] ]++;
}

foreach($rows as $index => $row) {
                mysql_query("UPDATE users SET duplicate=1, name = '".mysql_real_escape_string($row['name'])."2' WHERE name = '".mysql_real_escape_string($row['name'])."'"$
}
4

1 回答 1

2

由于这一行,未定义的索引被抛出:

$rowsCnt[$row['name']]++;

$row['name'] 的值不代表 $rowsCnt 数组中的任何项目,换句话说,数组 $rowCnt 中没有名称为 $row['name'] 的索引。

附注:您可能想要重写您的代码,因为它可以以更好的方式编写。

于 2013-11-15T03:15:37.253 回答