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

标签 php mysql pdo insert

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

  2. 我试图将接待员及其用户信息插入到不同的 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 的代码,它使我的 receptionistAction.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;
    }
}

最佳答案

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

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

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

关于php - 如何在 php pdo 中使用 1 个表单将数据插入到 2 个不同的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47236273/

相关文章:

java - 在 Java 中使用 "LOAD DATA LOCAL INFILE"

php - JOIN - 选择具有不同于 COUNT 标准的列/详细信息

php通过引用将数组存储在数组中

php - 没有返回结果的sql

php - 了解 preg_match_all() 函数调用中的模式

mysql - 如何在mysql的一组数据中使用like函数?

php - Woocommerce 删除 Action Hook

mysql - 将 MySQL 'SHOW CREATE TABLE' 翻译为 Hive

php - PDO 多次获取同一查询

php - 为什么当我在 mysql 中调用存储过程时 pdo->lastInsertId() 返回 0?