【问题标题】:How to get the primary key based on the users email? PHP& MYSQL如何根据用户电子邮件获取主键? PHP 和 MYSQL
【发布时间】:2018-04-10 13:48:39
【问题描述】:

这是用户登录时的代码:

if (isset($_POST['login_user'])) {
  $email = mysqli_real_escape_string($db, $_POST['Email']);
  $password = mysqli_real_escape_string($db, $_POST['Password']);

  if (empty($email)) {
    array_push($errors, "email is required");
  }
  if (empty($password)) {
    array_push($errors, "Password is required");
  }

  if (count($errors) == 0) {
    $password = md5($password);
    $query = "SELECT * FROM organisers WHERE email='$email' AND password='$password'";
    $results = mysqli_query($db, $query);

    if (mysqli_num_rows($results) == 1) {
      $_SESSION['email'] = $email;
      $_SESSION['success'] = "You are now logged in";
      header('location: loggedInInterface/loggedIN.php');
    }else {
        array_push($errors, "Wrong email/password combination");
    }
  }
}

别担心,我稍后会清理我的代码。 如您所见,他们将使用他们的电子邮件和密码登录。如何获取用户主键值?

注意:主键列名 = 'organiserID'

【问题讨论】:

标签: php mysql sql forms primary-key


【解决方案1】:

$row=mysqli_fetch_row($result); 回声$行[组织者ID];

【讨论】:

  • 我试过了,但为什么我没有打印任何值。我知道 $row 是一个数组。如果您执行 $row[columnName],它应该返回列值,但我什么也得不到。我觉得我犯了一个愚蠢的错误,或者我错过了什么
  • if (mysqli_num_rows($results) == 1) { $row=mysqli_fetch_row($results);回声 $row[organiserID];
  • 实际上我只是给出了一个例子,你应该写 $row=mysqli_fetch_row($results);试试这个的结果
【解决方案2】:

在你的“if”语句后面加上这个,然后你就可以访问它了:

$primaryKey = $row['nameOfPrimaryKeyColumn'];

【讨论】:

  • 什么是nameOfPrimaryKeyColumn
  • 无论你的数据库表中主键列的名称是什么。
  • 哪个 if 语句??
  • if (mysqli_num_rows($results) == 1) {
  • 如何检查它是否有效?我试图回应它,但没有显示任何价值。
【解决方案3】:

$row=mysqli_fetch_assoc($results); $primaryKey = $row[organiserID];

由于某种原因,您必须使用“mysqli_fetch_assoc”而不是使用“mysqli_fetch_row”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2012-02-09
    • 2020-06-07
    • 2016-12-16
    • 1970-01-01
    • 2015-07-05
    相关资源
    最近更新 更多