簡體   English   中英

如何將相同的值插入表sql,php

[英]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>

您可以像這樣獲得添加的行的ID:

$studentId = $db->lastInsertId();

查看文件

僅通過檢查姓名來找到學生證並不安全。 您的表格結構允許兩個同名學生嗎? 最重要的是,您需要確保您的學生表設置有一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM