[英]How to insert same value into to tables sql, php
有人可以幫我嗎,我使用一種簡單的形式將用戶添加到數據庫中,我的目標是將用戶添加到一個表中,但同時將(userid)添加到另一個表中,從而創建了用戶ID由數據庫自動執行,有可能做到這一點?
謝謝
<?php
require("coneccion.php");
if(!empty($_POST))
{
$query = "INSERT INTO students (fname, lname, studentcode) values (:fname, :lname, :studentcode)";
$query_params = array(':fname' => $_POST['fname'], ':lname' => $_POST['lname'], ':studentcode' => $_POST['studentcode']);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Error" . $ex->getMessage());
}
$name = $_SESSION['user']['username'];
$id = $_SESSION['courseid'];
$query = "INSERT INTO idtables(courseid, studentid) values ('$id', (SELECT id FROM users WHERE username = '$name'))";
try
{
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOExecute $ex)
{
die("Error" . $ex->getMessage());
}
$id = $_SESSION['courseid'];
header("Location: index.php?id=$id");
die("Rendirecting to index.php?id=$id");
}
?>
<?php
$id = $_SESSION['courseid'];
echo $id;
?>
<form action="add.php" method="post">
First Name: <input type="text" name="fname" value=""><br>
Last Name: <input type="text" name="lname" value=""><br>
Stude Code: <input type="text" name="studentcode" value=""><br>
<input type="submit" value="Add Student">
</form>
僅通過檢查姓名來找到學生證並不安全。 您的表格結構允許兩個同名學生嗎? 最重要的是,您需要確保您的學生表設置有一個studentid列,該列是主鍵,並且是AUTOINCREMENT。 然后,您使用lastInsertId(),而根本不需要在第二個(插入)查詢中執行另一個SELECT。 只是這個:
$query = "INSERT INTO students (fname, lname, studentcode) values (:fname, :lname, :studentcode)";
$query_params = array(':fname' => $_POST['fname'], ':lname' => $_POST['lname'], ':studentcode' => $_POST['studentcode']);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
if($result) $newStudentID = $db->lastInsertId();
}
catch(PDOException $ex)
{
die("Error" . $ex->getMessage());
}
$name = $_SESSION['user']['username'];
$id = $_SESSION['courseid'];
$query = "INSERT INTO idtables(courseid, studentid) values ('$id', $newStudentID)";
將第二個查詢更改為:
$query = "INSERT INTO idtables(courseid, studentid) values ('$id', LAST_INSERT_ID())";
LAST_INSERT_ID
是一個內置的MySQL函數,它返回最后插入的ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.