使用PHP更新外键值

使用PHP更新外键值,php,mysql,sql-update,foreign-keys,Php,Mysql,Sql Update,Foreign Keys,我一直在用另一个表中的值更新一个表。假设我有以下表格: Persons table PersonId (pk), Name, StateId (fk) States table StateId (pk), Level 我在两个输入中显示姓名及其对应的级别,得到具有以下代码的人员: $sel=“选择姓名,人员级别P在P.StateID=S.StateID上加入状态S,其中PersonID=:pid”; $stm=$pdo->prepare($sel); $stm->execute(数

我一直在用另一个表中的值更新一个表。假设我有以下表格:

Persons table
PersonId (pk), 
Name, 
StateId (fk)

States table 
StateId (pk), 
Level
我在两个输入中显示姓名及其对应的级别,得到具有以下代码的人员:

$sel=“选择姓名,人员级别P在P.StateID=S.StateID上加入状态S,其中PersonID=:pid”;
$stm=$pdo->prepare($sel);
$stm->execute(数组(“:pid”=>$\u GET['personId']);//来自呼叫页面的personId

$person=$stm->fetch(PDO::fetch_ASSOC)我找到了一个解决方案,结果是一个SQL问题: 我更改了
$update
字符串,以选择
StateID
where-Level=标签包含的内容

$update = "UPDATE Persons SET Name = :name, StateID = (SELECT StateID FROM States WHERE Level = :level) WHERE PersonID = :pid";

我找到了一个解决方案,结果是一个SQL问题: 我更改了
$update
字符串,以选择
StateID
where-Level=标签包含的内容

$update = "UPDATE Persons SET Name = :name, StateID = (SELECT StateID FROM States WHERE Level = :level) WHERE PersonID = :pid";

您好,为什么连续两次使用
$update
变量?恐怕第一个没有用,它会立即被覆盖。这是我解决问题的一次尝试(未成功),我已将其删除。谢谢你的指点!您好,为什么连续两次使用
$update
变量?恐怕第一个没有用,它会立即被覆盖。这是我解决问题的一次尝试(未成功),我已将其删除。谢谢你的指点!