如何在 php pdo 中使用 1 个表单将数据插入到 2 个不同的表中?

Posted

技术标签:

【中文标题】如何在 php pdo 中使用 1 个表单将数据插入到 2 个不同的表中?【英文标题】:How do i insert a data into 2 different tables using 1 form in php pdo? 【发布时间】:2018-04-24 11:30:00 【问题描述】:

    这是我的receptionistAction.php 文件,它使我能够操作表单的crud 函数。

    我正在尝试将接待员及其用户信息插入到不同的 SQL 语句中,但这会导致系统出错。

     <?php
     session_start();
     include '../../dbConnect.php';
     $pdo = new dbConnect();
     $tblName = 'receptionist';
     $tblName2 = 'users';
        if(isset($_REQUEST['action_type'])!empty($_REQUEST['action_type']))
        if($_REQUEST['action_type'] == 'add')
        $userData = array(
    
        'Rec_lastName' => $_POST['rlname'],
        'Rec_firstName' => $_POST['rfname'],
        'Rec_contact' => $_POST['rcontact'],
        'Rec_emailAdd' => $_POST['remailAddress'],
        'Rec_gender' => $_POST['rgender']
    );
    $userData2 = array(
    
        'username' => $_POST['rusername'],
        'password' => md5($_POST['rpassword']),
        'userType' => "receptionist"            
    );
    $insert = $pdo->insert($tblName,$userData);
    $insert2 = $pdo->insert($tblName2,$userData2);
    header("Location:../Maintenance-Receptionists.php");
    

这是我来自 dbConnect 的代码,它使我的接待员Action.php 能够为 crud 执行插入函数。

    public function insert($table,$data)
    if(!empty($data) && is_array($data))
        $columns = '';
        $values  = '';
        $i = 0;

        $columnString = implode(',', array_keys($data));
        $valueString = ":".implode(',:', array_keys($data));
        $sql = "INSERT INTO ".$table." (".$columnString.") VALUES 
        (".$valueString.")";
        $query = $this->db->prepare($sql);
        foreach($data as $key=>$val)
             $query->bindValue(':'.$key, $val);
        
        $insert = $query->execute();
        return $insert?$this->db->lastInsertId():false;
    else
        return false;
    

【问题讨论】:

if(isset($_REQUEST['action_type'])!empty($_REQUEST['action_type'])) 不会工作.. 也是你的电话insertRowsJoin,但显示insert:/ 【参考方案1】:

您需要更改检查action_type 的条件。哪个会产生错误

if(isset($_REQUEST['action_type'])!empty($_REQUEST['action_type']))

if(isset($_REQUEST['action_type']) && !empty($_REQUEST['action_type']))

【讨论】:

以上是关于如何在 php pdo 中使用 1 个表单将数据插入到 2 个不同的表中?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PDO 和 PHP 将表单中的数据插入 MySQL 数据库

如何将出生日期从数据库显示到表单并在 php 和 PDO 中更新?

如何使用准备好的语句将表单数据插入 PDO?

更新选择列表而不刷新 [PDO/PHP/AJAX]

JS数组到PHP并使用PDO更新MYSQL中的表

单击添加新按钮并使用php-pdo将数据插入数据库时​​如何生成2个新输入字段[关闭]