PHP数据库查询结果错误

时间:2015-04-08 18:25:40

标签: php mysql database

嗯,基本上这里是错误:

  

警告:mysqli_num_rows()期望参数1为mysqli_result,

中给出的对象

这是我的代码:

function user_banned ($con, $username) {
    $result = mysqli_query($con, "SELECT `banned` FROM `users` WHERE `username` = '$username'");
    return(mysqli_num_rows($con) == 1) ? true : false;
}

我不太确定导致这种情况的原因,我已经看到了几个关于这个问题的问题,但是他们都没有帮助我找到解决这个问题的方法。

5 个答案:

答案 0 :(得分:1)

  

程序样式int mysqli_num_rows(mysqli_result $ result)

http://php.net/manual/en/mysqli-result.num-rows.php

你正在传递conn它应该是

return(mysqli_num_rows($result) == 1) ? true : false;

答案 1 :(得分:1)

您应该在where子句中添加一个额外的列:AND banned='yes'作为示例。

另外,你在

中使用了错误的变量
return(mysqli_num_rows($con) == 1) ? true : false;

您需要使用查询变量而不是连接

return(mysqli_num_rows($result) == 1) ? true : false;

解释了最初的错误:

  

警告:mysqli_num_rows()期望参数1为mysqli_result,在...中给出的对象

答案 2 :(得分:0)

试试这个:

function user_banned ($con, $username) {
    $result = mysqli_query($con, "SELECT `banned` FROM `users` WHERE `username` = '$username'");
    return(mysqli_num_rows($result) == 1) ? true : false;
}

答案 3 :(得分:0)

您不想传递连接,您需要传递查询结果。

function user_banned ($con, $username) {
    $result = mysqli_query($con, "SELECT `banned` FROM `users` WHERE `username` = '$username'");
    return(mysqli_num_rows($con) == 1) ? true : false;
}

需要返回:

return (musqli_num_rows($result) == 1) ? true : false;

你的错误就是这么说的。它正在寻找mysqli_result而不是object

您的实际错误是基于返回true的事情,因为您使用了错误的查询。我会在返回的选择中按照您的示例说出:SELECT 'banned' from 'users' WHERE 'username' = '$username' AND 'banned' IS TRUE

这是假设禁止是一个bool当然,而不是字符串,位,int等。

答案 4 :(得分:0)

您是否尝试使用$ result代替$ con for mysqli_num_rows?

function user_banned ($con, $username) {
$result = mysqli_query($con, "SELECT `banned` FROM `users` WHERE `username` =     '$username'");
return(mysqli_num_rows($result) == 1) ? true : false;
}

您还应该检查您与数据库的连接是否良好。