如何在 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 数据库