"致命错误:在"中的非对象上调用成员函数fetch_array()

时间:2013-11-07 13:28:03

标签: php sql database

以下代码收到标题中显示的错误消息:

while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$rep_id       = $row['Report_ID'];
$rep_title    = $row['Report_Title'];
$rep_keywords = $row['Report_Keywords'];
$rep_cat      = $row['Report_Category_Subs'];
$rep_status   = $row['Report_Private'];

任何想法为什么会出现这种情况?

由于

编辑:这是下面的代码

if ($name == $_SESSION['user']['User_ID'] || isAdmin()) {
// User is retrieving their own data or admin is retrieving data
global $conn;

$name = $conn->real_escape_string($name);
$sql = 
"SELECT * 
FROM reports 
WHERE User_ID = '".$name."'
ORDER BY Report_ID DESC
LIMIT 500;";

$result = $conn->query($sql);

$tbl  = '<form action="myreports.php" method="post" id="modify">
<select name="choice">
<option value="">--Select Bulk Option--</option>
<option value="reverse-status">Change Public Status</option>
<option value="change-cats">Change Categories/Keywords</option>
<option value="delete">Delete Reports</option>
</select>
<input class="formbutton" id="sub" type="submit" name="submit" value="Submit" /><br/>

<table class="table">';
$tbl .= '<tr>  <th class="no-bg"><input type="checkbox" id="selectall" class="left" />                                                                        
</th>  <th>ID</th>  <th>Title</th>  <th>Keywords</th>  <th>Category</th>    
<th>Public</th></tr>';

3 个答案:

答案 0 :(得分:1)

简单来说,“$result不包含您认为 ”的内容。我认为你的问题是$result可能会返回 false 。这意味着您的查询失败了。

尝试var_dump($result)并查看它是否 false

答案 1 :(得分:0)

这是由$result引起的。由于查询失败,$result可能有 false 值。您需要提供更多代码,使我的答案更具说明性,但首先检查查询。

答案 2 :(得分:0)

在大多数情况下会发生这样的错误,因为您不会检查您执行的查询是否返回了您可以处理的任何数据集,或者(很可能)您的查询失败所以$result是不是对象,因此是错误信息。