如果get_result或fetch_array为空则不起作用

时间:2014-10-06 23:28:01

标签: php mysqli

如果mysqli结果中没有显示结果,我试图发消息:

$result = $stmt->get_result();

// I tried many things like this before the while

if (empty($stmt->get_result())) {
    // message here
}

// or

if (!$stmt->get_result()) {
    // message here
}

while ($row = $result->fetch_array()) {
    // do something
}

//Also after the while

if (empty($result->fetch_array())) {
    // message here
}

// or

if (!$result->fetch_array()) {
    // message here
}

但没有任何作用,我得到的同时打印数据和消息也显示......或不显示任何内容。

正确的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

mysqli_stmt::get_result()只会在出错时返回false,因此查找否定不是检查空结果集的方法。您可以在示例代码中使用while循环来递增计数器并在事后检查其值。或者,您可以使用返回的mysqli_result对象并检查其mysqli_result::$num_rows属性。

您应该继续检查false作为返回值,以防数据库方面出现错误。这些可以使用mysqli::$error显示。