错误:mysqli_fetch_object()期望参数1为mysqli_result

时间:2014-04-14 12:14:00

标签: php mysql mysqli

我不知道这条线的问题是什么或者如何解决它,之前还好,现在我收到了这个错误:

  

mysqli_fetch_object()期望参数1为mysqli_result

这是我的PHP代码:

<?php
}   
if($_GET['action']=="user_info")
    {

    $userid = $_GET['user_id'];

    $query = "SELECT * FROM user WHERE user_id ='{$userid}'";
    $result = mysqli_query($link, $query);
    $user = mysqli_fetch_object($result);

    $queryt = "SELECT * FROM user_title WHERE id='".$user->title."'";
    $resultt = mysqli_query($link, $queryt);
    $rowt = mysqli_fetch_object($resultt);
    $title = $rowt->name;

        $sorgu = "select * from pub_author where user_id='$userid'";
        $publications = mysqli_query($link, $sorgu);

        while($a = mysqli_fetch_object($publications))
    {
       $ids .= $a->pub_id . ',';
    }

       $ids = rtrim($ids,",");
   $sorgu2 = "select count(id) as total , year from publication where id IN ($ids)
       GROUP BY YEAR(`year`) order by `year` ";
   $publications2 = mysqli_query($link, $sorgu2);

       while($a2 = mysqli_fetch_object($publications2))
       {
          $mount = explode('-', $a2->year);
          $accyaz[$mount[0]] = $a2->total;
      }
  }

&GT;

2 个答案:

答案 0 :(得分:4)

就您的确切错误而言,您的某个查询失败,以下步骤可能会有所帮助。当然,你的问题看起来很复杂,但这里有一些解决你问题的事情

你的第一个查询应该是这样的,没有花括号,当然你直到用表格中的花括号包含明确的id。

SELECT * FROM user WHERE user_id ='$userid'

其次,您正在执行多个查询,因此您可能需要考虑错误检查,如果您的查询正确执行(由于语法错误列不匹配表名称不匹配更多的可能性):像while($a...)那样进行错误检查部分

if ($result=mysqli_query($link, $sorgu);)
{
  while($a=mysqli_fetch_object($result))
  {
    $ids .= $a->pub_id . ',';
  }

  $sorgu2 = "select count(id) as total , year from publication where id IN ($ids) GROUP BY YEAR(`year`) order by `year` ";

  //... Your further code
}
else
{
    echo "Something went wrong while executing query :: $sorgu";
}

第三,我看到你的pub_id正在制作一个逗号分隔的列表,以便你可以在最后一个查询中将它作为参数提供,这是一个长镜头,为什么不为你使用子查询{{1像这样的子句:

IN

答案 1 :(得分:3)

您所说的错误转换为:查询以某种方式失败,而不是运行mysqli_query($ link,$ sorgu); line echo $ sorgu,转到phpmyadmin并测试你的查询,如果不好,请在phpmyadmin中修复它,直到它正常工作并在代码中正确设置