PHP-如何根据用户名查找用户级别?
我需要找到一种方法,以获得用户级别的用户的用户名。我的用户名变量是:PHP-如何根据用户名查找用户级别?,php,mysql,login,Php,Mysql,Login,我需要找到一种方法,以获得用户级别的用户的用户名。我的用户名变量是: $username=$\u会话['username'] 我已经将所有用户级别存储在数据库中的表“users”和列“level”中。我需要一个MySql查询,它将允许我创建如下会话变量: $\u会话['level']= 提前谢谢 SELECT level FROM users WHERE username = 'username'; 然后,根据您访问DB(PDO等)所使用的内容,获取级别并将其放入会话中 例如,如果您正在使用P
$username=$\u会话['username']代码>
我已经将所有用户级别存储在数据库中的表“users”和列“level”中。我需要一个MySql查询,它将允许我创建如下会话变量:
$\u会话['level']=
提前谢谢
SELECT level FROM users WHERE username = 'username';
然后,根据您访问DB(PDO等)所使用的内容,获取级别并将其放入会话中
例如,如果您正在使用PDO:
# Connect to the database
$db = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$sql = 'SELECT level FROM users WHERE username = :username';
$query = $db->prepare($sql); # Prepare SQL statement to prevent SQL Injection Attack
$query->execute(array(':username' => $username)); # Bind parameter username
$_SESSION['level'] = $query->getColumn(); # Fetch data & Assign to session variable
查看有关使用PDO的更多信息
注意:如果您正在使用函数获取数据,并且$db connection语句不在该函数的范围内,则表示$db变量不在该函数的范围内,因此它将无法工作。您需要使用global
关键字来修复此问题。例如:
# database.php
$db = new PDO(...);
# otherfile.php
require_once("database.php");
function makeQuery($sql, $dataArr) {
global $db; # tell the compiler we mean the $db object above
$query = $db->prepare($sql);
$query->execute($dataArr);
}
我建议在用户登录时将用户名存储为会话变量时将级别存储为会话变量
$sql="SELECT * FROM $tbl_name WHERE user = '$user' AND pass = '$pass'";
$result=mysql_query($sql);
$user = mysql_fetch_array($result);
$_SESSION['user'] = $user['user'];
$_SESSION['level'] = $user['level'];
这样,您就不必每次都查询用户的级别,您可以随时使用$\u SESSION['level']]调用其级别。我如何将其放入mysql查询中?(我是PHP和MySQL新手)。我试过了,但没用$qry=“从用户名为“$username”;”的用户中选择级别$结果=mysql\u查询($qry);回显“$result”代码>mysql\u查询是错误的选择。它很快就会被弃用,它有很多安全问题,可以通过使用类似PDO的东西来解决。查看我在回答中添加的内容。echo$result
将仅为true
或false
(0/1等),因为如果执行查询,您将进行回显。我明白了。那么,我如何使用此代码来响应实际的用户级别呢$qry=“从用户名为“$username”;”的用户中选择级别$结果=mysql\u查询($qry);回显“$result”
如果你真的想走这条路,不管将来的反对和安全问题:$row=mysql\u fetch\u assoc($result)$级别=$row['level']
如果你发布更多的代码,我和clexmond(也是)可以帮助你更多。