0

当用户更改他的用户名时,我需要更新所有表以用他的新名称替换他的旧名称。

我努力了:

mysqli_query($con,"UPDATE * SET UserName='".$username2."'
                 WHERE UserName='".$username."'"); 

但这似乎只改变了一个表(我不知道它为什么选择这个特定的表;它不是按字母排序的第一个或最后一个)。我尝试了不止一次,同一张桌子一直在变化。

4

1 回答 1

2

首先,您为什么要将“用户名”存储在多个地方?这是一个糟糕的设计。

如果您仍然必须这样做,请使用主键 - 外键关系。并在更新级联选项上。见这里: http ://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html

另一种选择是拥有触发器。因此,当您更新有问题的表时,触发器会触发并且它可以执行您分配的任何任务。见这里: http ://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

于 2013-10-05T02:41:49.187 回答