PHP mysqli查询没有在SELECT语句上返回mysqli_result对象

时间:2016-05-09 03:28:37

标签: php mysql

我想知道我做错了什么..我似乎无法弄清楚为什么它没有返回我的行,它只是没有回应语句并在我调用“$ grow [”bName时将其留空“]”。我尝试了我的查询,它工作正常,它返回两列,用户名和bName。这是我的PHP代码:

<?php
require ("cfd.php");
require ("header.php");
$username = $_SESSION["username"];
echo $username;
    //run the query
    $gsql = "SELECT babysitter.bName, login.username FROM login INNER JOIN babysitter ON login.b_ID=babysitter.b_ID WHERE login.username = '".$username."';";
    $gres = mysqli_query($db, $gsql);
    $grow = mysqli_fetch_assoc($gres);
    echo "<h2>Hello ".$grow["bName"].", Your admin status is ".$_SESSION['admin']."<br>";
    echo $gres->num_rows;
?>


<?php
require("footer.php");
?>

4 个答案:

答案 0 :(得分:1)

请尝试$grow[0]["bName"]或者您可以使用此

while($row = mysqli_fetch_assoc($gres)) 
{
    $row['bNAme'];
}

答案 1 :(得分:1)

首先检查num行。并删除;在查询结束时

  

试试这个

if (mysqli_num_rows($gres) > 0) {
 while ($row = mysqli_fetch_assoc($gres)) {
    echo $row["bName"];

  }

}

答案 2 :(得分:1)

您的查询应该是

 $gsql = "SELECT babysitter.bName, login.username FROM login INNER JOIN babysitter ON login.b_ID=babysitter.b_ID WHERE login.username = '".$username."'";

使用此

if (mysqli_num_rows($gres) > 0) {
 while ($row = mysqli_fetch_assoc($gres)) {
    echo $row["bName"];

  }

}

答案 3 :(得分:0)

(代表OP发布)

我问我的老师,她说会话可能已超时,因此当我打电话给它时,我给了一个空字符串($username = $_SESSION["username"])。然后,它将不会在查询中插入任何内容,并会给我一个错误。

我将实现一些代码来检查$_SESSION["username"]是否为空,如果是,则重定向回登录页面。我会把它放在所有页面上。