PHP fetch_object()在非对象上

时间:2013-01-21 14:38:47

标签: php mysql ajax

<?php
$id = $_POST["id"];
$id2 = $_POST["id2"];

$db = new mysqli('localhost', '***', '***', '***');

if (mysqli_connect_errno() == 0) {
    $sql = "SELECT * FROM chat_message WHERE id > " . $id . " AND id <= " . $id2 . " ORDER BY id";
    $result = $db->query($sql);

    while ($msg = $result->fetch_object()) {
        ?>

        <div>...</div>

        <?php
    }
}

$db->close();
?>

我收到此错误:

Call to a member function fetch_object() on a non-object in /var/www/template/loadchat.php on line 11

第11行:

while ($msg = $result->fetch_object())

有任何帮助吗?因为我从昨天开始研究这件事,我找不到错误。

2 个答案:

答案 0 :(得分:3)

$result = $db->query($sql);返回false。这意味着查询因某种原因失败。

引用mysqli::query的PHP手册:

  

失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或   EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于   其他成功的查询mysqli_query()将返回TRUE。

要检查错误,您可以执行以下操作:

if (!$db->query($sql)) {
    trigger_error('Database error: '. $db->error);
}

答案 1 :(得分:3)

1)验证您的db表是否被命名为chat_message(可能是chat_messages?)

2)验证您的chat_message.id字段是否存在

3)验证你的php变量$id$id2是否为整数/浮点数!