我有一个脚本在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'])."'"$
}
答案 0 :(得分:2)
由于以下行而抛出未定义的索引:
$rowsCnt[$row['name']]++;
$ row ['name']的值不代表$ rowsCnt数组中的任何项目,换句话说,数组$ rowCnt中没有名称为$ row ['name']的索引。
附注:您可能想要重写代码,因为它可以用更好的方式编写。