我在我的网络项目中使用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');
}
?>
答案 0 :(得分:0)
正如您可以阅读手册
失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。
您必须检查查询是否失败或返回空结果(包含FALSE值)。您可以在if
所在的$rowcount = mysqli_num_rows($result)
内进行此操作。它看起来像这样:
if($result !== FALSE && $rowcount = mysqli_num_rows($result))
答案 1 :(得分:0)
当查询成功运行时,函数“mysqli_query”返回“mysqli_result对象”。
否则返回“false”
在你的情况下可能是“false”存储在$ result中可能是查询失败。
并且“mysqli_num_rows”将mysql_result对象作为参数。当你
$result = mysqli_query($link, $sql);
找到“false”即boolean。这就是显示错误的原因。
首先需要在mysql(phpmyadmin)中执行输出查询。纠正它。 并在你的代码中使用