Php 如何用一个查询更新多个表?
我需要更新多个表中的数据,但当我使用上述代码时,它的响应是“编辑成功”,但数据库中的数据并没有改变任何内容Php 如何用一个查询更新多个表?,php,mysql,sql,Php,Mysql,Sql,我需要更新多个表中的数据,但当我使用上述代码时,它的响应是“编辑成功”,但数据库中的数据并没有改变任何内容 但是当更新单个表时,它可以不需要事务,因为您的PDO似乎不接受事务 在您给出的示例中,类似的内容应该会起作用: if($_SERVER['REQUEST_METHOD'] == 'POST'){ $content = file_get_contents('php://input'); $user = json_decode($content, true); $id
但是当更新单个表时,它可以不需要事务,因为您的PDO似乎不接受事务 在您给出的示例中,类似的内容应该会起作用:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$content = file_get_contents('php://input');
$user = json_decode($content, true);
$id_a = $user['id_a'];
$id_b = $user['id_b'];
$aName = $user['aName'];
$bName = $user['bName'];
$sql = "
BEGIN TRANSACTION;
UPDATE `tb1`
SET `aName` = '$aName'
WHERE `id_a` = '$id_a';
UPDATE `tb2`
SET `bName` = '$nName'
WHERE `id_b` = '$id_b';
COMMIT
";
$result = $conn->query($sql);
if($result){
echo json_encode(['status'=>'success','message'=>'Edited successfully']);
}
else{
echo json_encode(['status'=>'error','message'=>'An error occurred editing the information.']);
}
}
else{
echo json_encode(['status'=>'error','message'=>'REQUEST_METHOD Error']);
}
$conn->close();
将$sql拆分为单独的查询可能更容易。在一个调用中执行多个查询本身就是一章。。此外,根据您与数据库通信所使用的方式,可能会有专门的处理事务的方法。
UPDATE tb1, tb2
SET tb1.aName = $aName,
tb2.bName = $bName
WHERE
tb1.id_a = $id_a
AND tb2.id_b = $id_b;