如何根据用户的电子邮件获取主键?PHP&;MYSQL
这是用户登录时的代码:如何根据用户的电子邮件获取主键?PHP&;MYSQL,php,mysql,sql,forms,primary-key,Php,Mysql,Sql,Forms,Primary Key,这是用户登录时的代码: 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"); } i
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");
}
}
}
别担心,我稍后会清理我的代码。
如您所见,他们将使用电子邮件和密码登录。如何获取用户主键值
注意:主键列名='OrganizerId'在'if'语句后包含此项,然后您可以访问它:
$primaryKey = $row['nameOfPrimaryKeyColumn'];
$row=mysqli\u fetch\u行($result);
echo$row[organizerid] $row=mysqli\u fetch\u assoc($results);
$primaryKey=$row[OrganizerId]
出于某种原因,您必须使用“mysqli\u fetch\u assoc”而不是“mysqli\u fetch\u row”。用户主键值是多少?只有你知道主键叫什么?完成后,它看起来将存储在
$results
中。您确实不应该存储纯文本密码。处理密码和防止SQL注入的必读资料^。。。也不是MD5散列,请使用本机的password.*
PHP函数,即nameOfPrimaryKeyColumn
?无论调用数据库表中主键列的名称是什么。哪个if语句?if(mysqli_num_rows($results)==1){如何检查它是否有效?我尝试了回显,但没有显示任何值。我尝试了,但为什么没有打印任何值。我知道$row是一个数组。如果您执行$row[columnName],它应该返回列值,但我什么也没有得到。我觉得我犯了一个愚蠢的错误,或者我缺少了一些东西(mysqli_num_rows)($results)==1{$row=mysqli_fetch_row($results);echo$row[organizerid];事实上,我只得到了一个示例,您应该编写$row=mysqli_fetch_row($results);用于此目的的结果请尝试以下方法