Php mysql查询错误

Php mysql查询错误,php,mysql,database,web,Php,Mysql,Database,Web,我在我的web项目中使用php和mysqli,但一切似乎都很好,但它在mysqli_num_rows()处给了我布尔错误 注意:我回显的第一行是为了查看输入的值是否被传递,它在下一行仍然可以正常工作,这给了我错误布尔值 <?php include("Database/database.php"); session_start(); $uname = $_SESSION['un']; $upassword = $_SESSION['up']; $varch = $_SESSION['ch'

我在我的web项目中使用php和mysqli,但一切似乎都很好,但它在mysqli_num_rows()处给了我布尔错误

注意:我回显的第一行是为了查看输入的值是否被传递,它在下一行仍然可以正常工作,这给了我错误布尔值

<?php
include("Database/database.php");
session_start();
$uname = $_SESSION['un'];
$upassword = $_SESSION['up'];
$varch = $_SESSION['ch'];
$sql = "SELECT `username`, `userpwd`, `userid` FROM `useraccount` WHERE username = '$uname' AND userpwd = '$upassword'";
echo $sql;
$result = mysqli_query($link, $sql);
if($rowcount = mysqli_num_rows($result))
{
    if($varch == "on")
    {
        setcookie("name", $uname, time()+60*60*7);
        setcookie("password", $upassword, time()+60*60*7);
    }
    header('Location: useraccount.php');
}
?>

如手册中所示

失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_结果对象。对于其他成功的查询,mysqli_query()将返回TRUE

您必须检查查询是否失败或返回空结果(包含假值)。如果您有
$rowcount=mysqli\u num\u rows($result)
,则可以在相同的
中执行此操作。看起来是这样的:

if($result !== FALSE && $rowcount = mysqli_num_rows($result))
当查询成功运行时,“mysqli\u查询”函数返回“mysqli\u结果对象”。
否则返回“false”。
在您的情况下,可能是“false”存储在$result中,可能是查询失败。 “mysqli_num_rows”将mysql_结果对象作为参数

$result = mysqli_query($link, $sql);
找到“false”即布尔值。这就是显示错误的原因

首先需要在mysql(phpmyadmin)中执行输出查询。纠正它。
并在代码中使用您定义的
$link
变量的可能重复项?显示代码。您的
mysqli\u查询($link,$sql)
失败。检查
$link
$sql
`我已经解决了它。你是对的。查询中出现错误