Php 如何一次更新两个表中的数据

Php 如何一次更新两个表中的数据,php,Php,我想一次在两个表中插入日期。一个表是用户表。当用户注册时,将保存日期。但是我想,当管理员将在捐赠表单中插入日期时,tbl_用户的捐赠日期将被更改,之后捐赠表日期和tbl_用户日期将相同。这是两张桌子的图片……。提前谢谢 这是我的代码 <?php if (isset($_POST['passport_IC']) && isset($_POST['blood_group']) && isset($_POST['blood_bag']) &&am

我想一次在两个表中插入日期。一个表是用户表。当用户注册时,将保存日期。但是我想,当管理员将在捐赠表单中插入日期时,tbl_用户的捐赠日期将被更改,之后捐赠表日期和tbl_用户日期将相同。这是两张桌子的图片……。提前谢谢

这是我的代码

<?php 
    if (isset($_POST['passport_IC']) && isset($_POST['blood_group']) && isset($_POST['blood_bag']) && isset($_POST['donation_date'])) {
        $passport_ic=$_POST['passport_IC'];
        $blood_group=$_POST['blood_group'];
        $blood_bag=$_POST['blood_bag'];
        $donate_date=$_POST['donation_date'];



        $db=new PDO('mysql:host=localhost;dbname=mypro_bms','root','');
        $statement = $db->prepare("insert into donate(passport_ic,blood_group,blood_bag,donation_date) values(:passport_IC, :blood_group, :blood_bag, :donation_date)");
        $statement->execute([
            ':passport_IC' => $passport_ic,
            ':blood_group' => $blood_group,
            ':blood_bag' => $blood_bag,
            ':donation_date' => $donate_date


        ]);
    }
?>

<?php
    if (isset($_POST['donation_date']) && isset($_POST['passport_IC']) ){
        $passport_ic=$_POST['passport_IC'];                   
        $donate_date=$_POST['donation_date'];

        $db=new PDO('mysql:host=localhost;dbname=mypro_bms','root','');
        $statement = $db->prepare("INSERT INTO `tbl_user` (`donation_date`)
            SELECT :passport_IC
            FROM donate
            WHERE passport_IC = :passport_IC");

    }
?>

由于您正在执行
INSERT
查询,因此
tbl\u用户
没有更新。当该行存在时,您不能再次执行
INSERT
查询。试试这个

$data = [
 'donation_date' => $donation_date,
 'passport_IC' => $passport_ic,
];
$sql = "UPDATE tbl_user SET donation_date=:donation_date WHERE passport_IC = :passport_IC";
$stmt= $db->prepare($sql);
$stmt->execute($data);

我没有检查此代码,但它应该可以工作。

您是否收到任何错误或上述代码的任何输出?没有错误。但只有捐赠表日期收到数据,但在tbl_用户Tbale中没有更改代码的第一部分正常,但第二部分不工作。我不知道如何一次在2个表中添加数据的实际格式您是否尝试过检查任何错误消息?如果它有效并解决了您的问题,您可以接受答案:)