这是我的 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 的代码,它使我的 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/