mysql查询错误

时间:2017-02-26 08:54:49

标签: php mysql database web

我在我的网络项目中使用php和mysqli但是每件事似乎都没问题,但它在mysqli_num_rows()中给出了布尔错误;

enter image description here

注意:我回显的第一行,所以我可以看到我输入的值是否正在传递,它在下一行仍能正常工作,它给出了错误布尔值。

<?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');
}
?>

2 个答案:

答案 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)中执行输出查询。纠正它。 并在你的代码中使用