如何获取数据库中特定行的相应user_id(自动增量)值?
问题描述:
我的表有2列,user_id和username。用户帐号像这样登录:如何获取数据库中特定行的相应user_id(自动增量)值?
<?php
require('dbConnect.php');
$username = $_POST['username'];
//need to keep this in a session, for other pages later on
session_start();
$_SESSION['username'] = $username;
$sql = "SELECT * FROM user WHERE username = '$username'";
$result = mysqli_query($con,$sql);
$check = mysqli_fetch_array($result);
if(isset($check)) :
//if the username exists in the database, then show a html submit button
$con->close();
?>
<html>
<body>
<form action="UserDetails.php" method="post">
<input type="submit">
</form>
</html>
<?php else :{
//if user is not in db, show this message
echo 'Sorry about that, you can't come in.';
}
$con->close();
?>
<?php endif; ?>
我怎样才能获得对应的用户名,将在以后的页面上使用的USER_ID?
答
的(isset($check))
似乎害我麻烦,有时返回user_id
,有时没有。
非常感谢Nabeel的回答,这个想法对我很有帮助。也感谢Solrac Ragnarockradio的把我的轨道上,使我的代码以mysqli_real_escape_string更安全:
<?php
require('dbConnect.php');
$username = mysqli_real_escape_string($con,$_POST['username']);
$sql = "SELECT * FROM user WHERE username = '$username'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($result);
$user_id = $row["user_id"];
//give me the corresponding user_id of the logged in user
echo $user_id;
if (mysqli_num_rows($result)==0) {
echo "Failed, sorry";
}
if (mysqli_num_rows($result) > 0) {
echo "User id exists already.";
}
$con->close();
?>
答
这些行后:
$sql = "SELECT * FROM user WHERE username = '$username'";
$result = mysqli_query($con,$sql);
添加这些行:
$row = mysqli_fetch_assoc($result);
$user_id = $row["user_id"];
答
isset($check)
心不是保存在这一点上,为$值检查更好地检查和else
后{}
的arent需要它不管用。
答
的几个问题在这里:
1)如果你正在使用"SELECT * FROM user WHERE username = $1
然后用户名列应该是UNIQUE念念不忘逃避你输入:
<?php
$username = mysqli_real_escape_string($con, $_POST['username']);
$sql_query = mysqli_query($con,"SELECT * FROM user WHERE username = '$username'");
2)你可以检查,如果您有任何结果B4任何东西,如从数据库直签的瓦尔...
if (mysqli_num_rows($sql) == 0) {
$error = "This user doesn't exists here...";
}else{
$user_info = mysqli_fetch_assoc($sql_query);
$_SESSION['username'] = $user_info['username'];
$_SESSION['user_id'] = $user_info['user_id'];
}
$con->close();
?>
然后你可以任何你想要在用户登录,如果$_SESSION['user_id']
实际上是有输出...
<html>
<body>
<form action="UserDetails.php" method="post">
<input type="submit">
</form>
</body>
<?php
echo 'Well, here\'s the output: <b>'. (isset($_SESSION['user_id']) ? $_SESSION['username'] : $error).'</b>';
你的意思是你要访问'USER_ID '在* UserDetails.php *页面上,对吗? –
从你的SELECT –