Php MySQLi查询未正确返回结果

Php MySQLi查询未正确返回结果,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试将我的网站切换到MySQLi,并遵循W3schools-MySQLi指南这样做。不过,我遇到了一个障碍。我有一个功能来检查指定的用户是否是网站的管理员。我在不同的地方放置了echo,以找到问题所在,我发现它很可能没有看到用户$username设置为变量$user。以下是整个代码块(connect.php的一部分: <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "lark

我正在尝试将我的网站切换到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.";
    }
}
?>
我还必须重新连接到数据库,否则我会在网站上出现以下错误:

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) {
    /*$servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "lark";
    $conn = mysqli_connect($servername, $username, $password, $dbname);*/

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

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

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

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

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

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

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

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

}

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

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

}

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

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

}

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

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

}


它被编辑掉了,所以我可以知道错误是什么,我的错。我修复了它。你仍然会收到相同的错误,这已经解决了,或者还有其他错误?其他错误可能是你双重分配了$username。我没有收到错误,但它说“找不到”这意味着它找不到指定的用户。在本例中指定的用户应该存在,因为它是登录的用户。根据数据库,有一个登录的用户是管理员。是的,您在函数中设置了两次
$username
,它是“root”。您用sql连接覆盖传入的内容。哈哈,我甚至没有冰。谢谢,这修复了它。我只是希望我不必连接到函数中的数据库,即使我已经连接过一次。它被编辑掉了,这样我可以知道错误是什么,我的错。我修复了它。你仍然会收到相同的错误,这已经解决了,或者还有其他错误?其他错误可能是你双重分配$username。我不知道错误,但上面写着“找不到”这意味着它找不到指定的用户。在本例中指定的用户应该存在,因为它是登录的用户。根据数据库,有一个登录的用户是管理员。是的,您在函数中设置了两次
$username
,它是“root”。您用sql连接覆盖传入的内容。哈哈,我甚至没有冰。谢谢,这修复了它。我只是希望我不必连接到函数中的数据库,即使我已经连接过一次。它被编辑掉了,这样我可以知道错误是什么,我的错。我修复了它。你仍然会收到相同的错误,这已经解决了,或者还有其他错误?其他错误可能是你双重分配$username。我不知道错误,但上面写着“找不到”这意味着它找不到指定的用户。在本例中指定的用户应该存在,因为它是登录的用户。根据数据库,有一个登录的用户是管理员。是的,您在函数中设置了两次
$username
,它是“root”。您用sql连接覆盖传入的内容。哈哈,我甚至没有冰。谢谢,这修复了它。我只是希望我不必连接到函数中的数据库,即使我已经连接过一次。它被编辑掉了,这样我可以知道错误是什么,我的错。我修复了它。你仍然会收到相同的错误,这已经解决了,或者还有其他错误?其他错误可能是你双重分配$username。我不知道错误,但上面写着“找不到”这意味着它找不到指定的用户。在本例中指定的用户应该存在,因为它是登录的用户。根据数据库,有一个登录的用户是管理员。是的,您在函数中设置了两次
$username
,它是“root”。您用sql连接覆盖传入的内容。哈哈,我甚至没有冰。谢谢,这解决了它。我只是希望我不必连接到函数中的数据库,即使我已经连接过一次。