使用PDO和MySQL PHP

时间:2018-08-05 02:36:08

标签: php mysql pdo

当学生添加新科目时,我试图将userID从Student表转移到评估表,以使他们的科目对于他们所拥有的userID仍然是唯一的。

但是,我似乎无法提出正确的问题来获得自己正在寻找的答案,因此我假设我必须在他们登录时为其唯一的会话,即用户ID。

然后我继续添加一个隐藏的输入,以便在提交表单时,MySQL正在获取该用户ID,因此可以添加该用户ID,但是似乎不起作用* ...

*一切正常,但是评估表中的userID字段仍为0

肯定有解决此问题的更有效方法。

这是我在下面所做的事情。

登录后,我创建一个会话-

$_SESSION['userID'] = $_POST['userID']; 

我的PDO + MySQL-

  $assessName = $_POST["assessName"];
  $assessSubject = $_POST['assessSubject'];
  $duedate = $_POST['duedate'];
  $userID = $_POST['userID'];


      $sql = "INSERT INTO assessment (assessName, assessSubject, duedate, userID) VALUES (:assessName, :assessSubject, :duedate, :userID)";
      $statement = $conn->prepare($sql);
      $statement->bindValue(':assessName', $assessName);
      $statement->bindValue(':assessSubject', $assessSubject);
      $statement->bindValue(':duedate', $duedate);
      $statement->bindValue(':userID', $userID);
      $result = $statement->execute();
      $statement->closeCursor();


      header("location: ../view/success.php");
      return $result;

表格-

  <form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
                <div class="form-group">
                <label>Assessment Name</label>
                <input type="text" class="form-control" id="assessName" name="assessName" placeholder="Enter Name" required>
                </div>
                <div class="form-group">
                <label>Subject</label>
                  <input type="text" class="form-control" id="assessSubject" name="assessSubject" placeholder="Enter Subject" required>
                <span class="error"><?php echo $Variable_error;?></span>
                </div>
                <div class="form-group">
                  <div class="dateBox">
                <label>Date</label>
                <input type="text" class="form-control" id="datepicker" name="duedate" placeholder="Choose Due Date" autocomplete="off" required>
              </div>
              <input type="hidden" name="userID" value="<?php $_SESSION['userID'] ?> "/>
                </div>
                <input type="submit" name="submit" value="Submit" class="btn btn-primary"></input>

        </form>

谢谢!

编辑-

学生桌

    $sql = 'SELECT * FROM student WHERE username = :username AND password = 
:password';
$statement = $conn->prepare($sql);
$statement->bindValue(':username', $username);
$statement->bindValue(':password', $password);
$statement->execute();
$result = $statement->fetchAll();
$statement->closeCursor();
$count = $statement->rowCount();
return $count;

1 个答案:

答案 0 :(得分:1)

所以我的问题放在学生表中,我需要添加

$_SESSION['uid'] = $result[0]['studentid'];

在使用我的$ count变量之前...

$sql = 'SELECT * FROM student WHERE username = :username AND password = :password';
$statement = $conn->prepare($sql);
$statement->bindValue(':username', $username);
$statement->bindValue(':password', $password);
$statement->execute();

$result = $statement->fetchAll();
$_SESSION['uid'] = $result[0]['studentid'];
$statement->closeCursor();
$count = $statement->rowCount();
return $count;