繁体   English   中英

MySQLi查询未正确返回结果

[英]MySQLi Query not Returning Results properly

我正在尝试将网站切换到MySQLi,并且正在遵循W3schools MySQLi指南进行操作。 不过,我遇到了障碍。 我具有检查指定用户是否为站点管理员的功能。 我在各个地方都放置了echo以查找问题所在,并且我发现它很可能看不到用户。 $username设置为变量$user 这是整个代码块(connect.php的一部分:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "lark";

$conn = mysqli_connect($servername, $username, $password, $dbname);

if(!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

session_start();
if(!isset($_SESSION["user_login"])) {
    $user = "";
} else {
    $user = $_SESSION["user_login"];
}

//functions
function isAdmin($username) {
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "lark";
    $conn = mysqli_connect($servername, $username, $password, $dbname);

    $sql_get_is_admin = "SELECT * FROM users WHERE username='$username' LIMIT 1";
    $get_is_admin = mysqli_query($conn, $sql_get_is_admin);

    if(mysqli_num_rows($get_is_admin) > 0) {
        echo "num_rows";
        while ($row = mysqli_fetch_assoc($get_is_admin)) {
            $is_admin_bool = $row['admin'];
            echo "while";
            if($is_admin_bool == 0){
                return false;
            } elseif ($is_admin_bool == 1) {
                return true;
            }
        }


    } else {
        echo "not found.";
    }
}
?>

这是我用来测试$user变量的代码:

<?php 
include("connect.php");
?>
<div class="main">
<h1>Welcome back, <?php echo $user; ?></h1>
foo
<?php
/*if(isAdmin($user) == true) {
    echo   "<div style='display: table-cell;' class='rightcell'>
                <h3 style='color: #000;'>Admin Tools</h3>
                <a href='userlist.php' target='_blank'>Userlist</a>
            </div>";
} else {
} */

echo isAdmin($user);
?>
</div>

我还必须重新连接到数据库,否则会在网站上收到此错误:

Notice: Undefined variable: conn in C:\xampp\htdocs\lark\connect.php on line 33

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\lark\connect.php on line 33

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\lark\connect.php on line 35 not found.

如果我对其进行修复,那么就没有错误,它只会显示“未找到”。

$ conn变量未在函数中定义,例如:

function isAdmin($username) {
global $conn;
..................

}

您的函数中没有$ conn,它已被注释掉。

function isAdmin($username) {
    /*$servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "lark";
    $conn = mysqli_connect($servername, $username, $password, $dbname);*/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM