1

在这里,我为此编写了查询。查询是正确的,但不知道为什么它没有回显任何内容:

$sql3= mysqli_query($con,"select post from facebook_posts where p_id >  (select MAX(p_id) - 5 from facebook_posts);");
while ($row = @mysql_fetch_array($sql3))
{
    echo $row['post'];
    echo '<br/>';

}

表已有数据。当我在 mysql 中测试查询时,它给出了 5 行内容;

4

2 回答 2

2

首先,您使用mysqli库进行查询,然后尝试使用mysql来获取一行。

mysql并且mysqli是不同的库。您应该只使用其中之一。由于mysql已弃用,您应该mysqli从这两个中使用。

于 2013-10-26T13:48:40.703 回答
1

您正在混淆mysqli_*mysql_*功能。当您使用 执行查询时,该mysql_fetch_array函数无法获取任何结果mysqli_query。您不应该再使用这些mysql_*功能,因为它们已被弃用。

此外,如果你想在 MySQL 中限制你的结果,你可以使用LIMIT-clause 而不是计算最大/最小 id。

如果您将代码更改为以下内容,它应该可以工作。

$result = mysqli_query($con,"select post from facebook_posts where p_id >  (select MAX(p_id) - 5 from facebook_posts)");
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
  echo $row['post'];
  echo '<br/>';
}

有关使用 mysqli 获取结果的更多信息,您可以查看此处

于 2013-10-26T13:48:14.237 回答