SQL Query和PHP检查用户是否为Admin

时间:2015-03-10 12:38:48

标签: php web mysqli

基本上,我在向MySQL服务器发送请求并收回数据并检查用户是管理员还是用户时遇到了一些麻烦。

Admin = 1 用户= 0

<?php 
$checkAdminQuery = "SELECT * FROM `users` WHERE `admin`";
$checkAdmin = $checkAdminQuery
mysqli_query = $checkAdmin;

if ($checkAdmin == 1) {
echo '<h1>Working!</h1>';
}else {
echo '<h1>Not working!</h1>'; 
}

?>

很抱歉,这可能不需要太多信息,我目前是Stack Overflow的新手。如果你能帮助我,非常感谢你!

4 个答案:

答案 0 :(得分:1)

如果要在数据库中检查某人,则需要具有类似用户ID的内容。例如,如果您在会话中存储了用户ID

<?php
// 1. start session
session_start();
// 2. connect to db
$link = mysqli_connect('host', 'user', 'pass', 'database');
// 3. get user
$checkAdminQuery = mysqli_query($link, "SELECT * FROM `users` WHERE `id_user` = " . $_SESSION['id_user'] );
// 4. fetch from result
$result = mysqli_fetch_assoc($checkAdminQuery);

// 5. if column in database is called admin test it like this
if ($result['admin'] == 1) {
  echo '<h1>Is admin!</h1>';
}else {
  echo '<h1>Not working!</h1>'; 
}
?>

答案 1 :(得分:1)

首先,您的SQL查询错误

SELECT * FROM `users` WHERE `admin`

缺少WHERE子句的其余部分

SELECT * FROM `users` WHERE `admin` = 1

然后,您将需要从查询结果中获取结果。你甚至没有运行查询

$resultSet = mysqli_query($checkAdminQuery)

然后从那里,您将要提取值。

while($row = mysqli_fetch_assoc($resultSet))
{
    //do stuff
}

这是我看到的最初问题,如果需要,我会继续分析并找到更多。

请参阅此处的文档

http://php.net/manual/en/book.mysqli.php

答案 2 :(得分:1)

//获取所有管理员用户(假设数据库已连接)

$rtn = array();
$checkAdminQuery = "SELECT * FROM `users` WHERE `admin`=1";
$result = mysqli_query($dbcon,$checkAdminQuery) or die(mysqli_error($dbconn));

while($row = mysqli_fetch_array($result)){
   $rtn[] = $row;
}

答案 3 :(得分:0)

$checkAdminQuery = "SELECT * FROM `users` WHERE `admin`"; !!!!
什么?你需要指明工作的位置=&#39; admin&#39;或者名称=&#39; admin&#39; 您需要指定要添加管理字符串的列名称