当用户更改他的用户名时,我需要更新所有表以用他的新名称替换他的旧名称。
我努力了:
mysqli_query($con,"UPDATE * SET UserName='".$username2."'
WHERE UserName='".$username."'");
但这似乎只改变了一个表(我不知道它为什么选择这个特定的表;它不是按字母排序的第一个或最后一个)。我尝试了不止一次,同一张桌子一直在变化。
当用户更改他的用户名时,我需要更新所有表以用他的新名称替换他的旧名称。
我努力了:
mysqli_query($con,"UPDATE * SET UserName='".$username2."'
WHERE UserName='".$username."'");
但这似乎只改变了一个表(我不知道它为什么选择这个特定的表;它不是按字母排序的第一个或最后一个)。我尝试了不止一次,同一张桌子一直在变化。
首先,您为什么要将“用户名”存储在多个地方?这是一个糟糕的设计。
如果您仍然必须这样做,请使用主键 - 外键关系。并在更新级联选项上。见这里: 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