Php mysqli fetch数组需要一个参数作为mysqli_结果

Php mysqli fetch数组需要一个参数作为mysqli_结果,php,html,mysql,Php,Html,Mysql,我的mysqli\u fetch\u array()有问题。code。我已经交换和更改了很多次变量,以找出它为什么不起作用。本质上,我需要它来访问我的数据库,找到符合特定条件的行数并返回值。关于如何让我的mysqli\u fetch\u array()函数工作,有什么见解吗 谢谢 <html> <?php $uname = ""; $pword = ""; $errorMessage = ""; function quote_smart($handle, $value) {

我的
mysqli\u fetch\u array()有问题。
code。我已经交换和更改了很多次变量,以找出它为什么不起作用。本质上,我需要它来访问我的数据库,找到符合特定条件的行数并返回值。关于如何让我的
mysqli\u fetch\u array()
函数工作,有什么见解吗

谢谢

<html>
<?php
$uname = "";
$pword = "";
$errorMessage = "";

function quote_smart($handle, $value) {
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }

    if (!is_numeric($value)) {
        $value = "'" . mysqli_real_escape_string($handle, $value) . "'";
    }

    return $value;
}

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$uname = $_POST['username'];
$pword = $_POST['password'];

$uname = htmlspecialchars($uname);
$pword = htmlspecialchars($pword);

$con = mysqli_connect("127.0.0.1", "root", "");
$db = mysqli_select_db($con, "users");

if ($db) {

    $uname = quote_smart($con, $uname);
    $pword = quote_smart($con, $pword);

    $SQL = "SELECT * FROM users WHERE L1 = $uname AND L2 = md5($pword)";
    $result = mysqli_query($con, $SQL);
    $num_rows = mysqli_fetch_array($result,MYSQLI_NUM);

    if ($result) {
        if ($num_rows > 0) {
            session_start();
            $_SESSION['login'] = "1";
            header ("Location: home.php");
        }
        else {
            session_start();
            $_SESSION['login'] = "";
            header ("Location: regpage.php");
        }   
    }
    else {
        $errorMessage = "Error logging on";
    }

mysqli_close($con);

}

else {
    $errorMessage = "Error logging on";
}

}
?>
</html>
每次运行时,我都会收到以下错误消息:

警告:mysqli_fetch_array()要求参数1为mysqli_结果,给定布尔值

$SQL = "SELECT * FROM users WHERE L1 = '".$uname."' AND L2 = '".md5($pword)."'";
$result = mysqli_query($con, $SQL)or die(mysqli_error($connection));
$num_rows = mysqli_num_rows($result);
使用mysqli_error并传递连接作为其中的参数

$connection = mysqli_connect("localhost", "root", "", "stackoverflow");
$result = mysqli_query($connection, $SQL)or die(mysqli_error($connection));
测试代码

<?php
    $uname = "";
    $pword = "";
    $errorMessage = "";

    function quote_smart($handle, $value)
    {
        if (get_magic_quotes_gpc())
        {
            $value = stripslashes($value);
        }

        if (!is_numeric($value))
        {
            $value = "'" . mysqli_real_escape_string($handle, $value) . "'";
        }
        return $value;
    }

    if (isset($_REQUEST['submit']))
    {
        $uname = $_POST['username'];
        $pword = $_POST['password'];

        $uname = htmlspecialchars($uname);
        $pword = htmlspecialchars($pword);

        $con = mysqli_connect("localhost", "root", "","stackoverflow");

        if ($con)
        {
            $uname = quote_smart($con, $uname);
            $pword = quote_smart($con, $pword);

            $SQL = "SELECT * FROM users WHERE username = ".$uname." AND password = ".$pword."";

            $result = mysqli_query($con, $SQL);
            $num_rows = mysqli_fetch_array($result,MYSQLI_NUM);

            if ($result)
            {
                if ($num_rows > 0)
                {
                    session_start();
                    $_SESSION['login'] = "1";
                    header ("Location: home.php");
                    exit;
                }
                else
                {
                    session_start();
                    $_SESSION['login'] = "";
                    header ("Location: regpage.php");
                    exit;
                }   
            }
            else
            {
                $errorMessage = "Error logging on";
            }
            mysqli_close($con);
        }
        else
        {
            $errorMessage = "Error logging on";
        }
    }
?>

$num\u行=mysqli获取数组($result,mysqli\u num)此结果是数据数组而不是行数

要获取行数,请使用
mysqli\u num\u rows($result)

$num_rows=count(mysqli_fetch_数组($result,mysqli_num))

md5()是php函数,而不是mysql函数。在您的例子中,您使用它就像使用mysql函数一样。只需将您的查询替换为以下内容:

$SQL = "SELECT * FROM users WHERE L1 = $uname AND L2 = '".md5($pword)."' ";

当我尝试您的代码时,我得到了以下错误代码:“警告:mysqli_error()需要正好1个参数,0在中给出”您需要在其中传递连接字符串..@teepleb请参阅更新的答案。因此我将连接传递给它,现在我得到了:“警告:mysqli_num_rows()需要参数1为mysqli_result,布尔值在中给出”。我假设我需要传递一个INT?@teepleb,请确保将正确的连接传递到所有查询中。。
$SQL = "SELECT * FROM users WHERE L1 = $uname AND L2 = '".md5($pword)."' ";