mysqli_num_rows()期望参数1为mysqli_result,给定对象

时间:2014-10-24 02:20:09

标签: php mysql mysqli

我遇到警告问题“mysqli_num_rows()期望参数1为mysqli_result,对象给出”,我正在尝试显示数据库中的内容,除了此警告外,它似乎工作正常。我已经尝试了很多方法来解决这个问题,但它似乎并没有起作用。警告告诉我有问题的行是“if(mysqli_num_rows($ result)> 0){”,希望你能帮助我解释一下。感谢。

<?php
$sql = "SELECT `id`, `name`, `type`, `size`, `url`, `owner`, `created` FROM `files`";
$result = $db->query($sql);
if($result) {
    if(mysqli_num_rows($result)>0) {
        echo "You have not uploaded any files.";
    } else {
        echo "  <table width='100%'>";
        echo "
    <tr>
      <td>Name</td>
      <td>Type</td>
      <td>Size</td>
      <td>URL</td>
      <td>Owner</td>
      <td>Created</td>
      <td></td>
    </tr>";
        while($row = $result->fetch(PDO::FETCH_ASSOC)) {
            echo "
    <tr>
      <td>{$row['name']}</td>
      <td>{$row['type']}</td>
      <td>{$row['size']}</td>
      <td>{$row['url']}</td>
      <td>{$row['owner']}</td>
      <td>{$row['created']}</td>
      <td><a href='file?id={$row['id']}'>Download</a></td>
    </tr>";
        }
        echo "
  </table>
";
    }
}
?>

3 个答案:

答案 0 :(得分:2)

您无法将mysqliPDO

一起使用

如果你想计算PDO中的行,请执行以下操作:

if($result->rowCount() === 0)

PDOStatement::rowCount

答案 1 :(得分:1)

看起来你正在混合mysqli的对象和程序风格。试试这个:

if ($result->num_rows > 0) 

答案 2 :(得分:0)

您也可以使用select语句中的fetchColumn

if ($result->fetchColumn() > 0)