Php 从某一行中选择“全部”后,是否有方法从未定义的某些列中获取数据?
因此,我的SELECT语句是从users表中的一行中选择all。该行中有一列标记为“user_level”,我想使用该列中的数据来区分管理员和来宾。有没有一种方法可以使用“user_level”(并可能将其绑定到会话变量),而无需编写另一条SELECT语句Php 从某一行中选择“全部”后,是否有方法从未定义的某些列中获取数据?,php,mysql,pdo,Php,Mysql,Pdo,因此,我的SELECT语句是从users表中的一行中选择all。该行中有一列标记为“user_level”,我想使用该列中的数据来区分管理员和来宾。有没有一种方法可以使用“user_level”(并可能将其绑定到会话变量),而无需编写另一条SELECT语句 if (isset($_POST['username'], $_POST['password'])) { $username = $_POST['username']; $password = md5($_POST['pass
if (isset($_POST['username'], $_POST['password'])) {
$username = $_POST['username'];
$password = md5($_POST['password']);
if (empty($username) or empty($password)) {
$error = 'All fields are required!';
} else {
$query = $pdo->prepare("SELECT * FROM users WHERE user_name = :name and
user_password = :password");
$query->bindValue(":name", $username, PDO::PARAM_STR);
$query->bindValue(":password", $password, PDO::PARAM_STR);
$query->execute();
$num = $query->rowCount();
if ($num == 1) {
//user entered correct details
$_SESSION['logged_in'] = true;
header('Location: index.php');
exit();
} else {
//user entered false details
$error = 'Incorrect details!';
}
}
}
这里不需要行计数。
以及一半重复和三次重复的代码
if (isset($_POST['username'], $_POST['password'])) {
$username = $_POST['username'];
$password = md5($_POST['password']);
$sql = "SELECT user_level FROM users WHERE user_name = ? and user_password = ?";
$stm = $pdo->prepare($sql);
$srm->execute(array($username,$password));
$level = $stm->fetchColumn();
if ($level !== FALSE) {
//user entered correct details
$_SESSION['user_level'] = $level;
header('Location: index.php');
exit();
}
}
$error = 'Incorrect details!';
为什么不将查询作为数组返回而不是计数,然后执行
if($result['user\u level']>0)
?检查数组是否存在,以确保它们已登录。@YourCommonSense有点冒昧,你不这样认为吗?;)如果他们的用户级别为0,那么登录不会失败吗?