代码之家  ›  专栏  ›  技术社区  ›  ubiquibacon

MySQL查询结果不是资源

  •  0
  • ubiquibacon  · 技术社区  · 14 年前

    $num = mysql_num_rows($result); part给了我一个MySQL错误,说它需要一个资源。通常,当我有这个错误是因为我错放了一个单一的报价在一些地方,但经过寻找我找不到任何问题,虽然这个查询是有点比我通常要处理的复杂。

    //connect to the database and stuff
    
    $last_year = idate("Y")-1;
    $month = date("m");
    $day = date("d");                                   
    
    $query = "SELECT bills.b_id, bills.c_id, bills.grand_total, bills.void, bills.date_added,
                     customers.b_name, customers.l_name, customers.f_name, customers.phone 
              FROM bills, customers 
              WHERE bills.c_id = customers.c_id 
                    AND bills.void = '0' 
                    AND date_added BETWEEN '".$last_year."-".$month."-".$day."' AND CURDATE()";
    $result = mysql_query($query);
    mysql_close($link);                 
    $num = mysql_num_rows($result);
    

    编辑:

    虽然我已经知道 mysql_close() 准确的 同样的代码(除了查询)可以在其他十几个页面中使用。 问题出在查询中 mysql_num_rows() expects parameter 1 to be resource . 我现在正在处理具体的错误。

    5 回复  |  直到 14 年前
        1
  •  1
  •   VolkerK    14 年前

    在代码中添加一些错误处理。

    $result = mysql_query($query);
    if ( !$result ) {
      echo 'the query failed: ', mysql_error();
      die;
    }
    

    另请参见: http://docs.php.net/mysql_error

        2
  •  1
  •   Amber    14 年前
    1. error_reporting(E_ALL);

    2. 尝试等待关闭mysql连接,直到处理完结果集。

        3
  •  0
  •   Angel Aparicio    14 年前

    试试这个 mysql\u close() 最后的功能。如果你关闭mysql连接, mysql\u num\u rows() 是行不通的

    $num = mysql_num_rows($result);
    .
    .
    //Any others mysql operations
    .
    .
    mysql_close($link);
    
        4
  •  0
  •   fuwaneko    14 年前

        5
  •  0
  •   Your Common Sense    14 年前

    “not a resource”错误表示查询失败。
    以这种方式更改mysql\u查询调用

    $result = mysql_query($query) or trigger_error(mysql_error().$query);
    

    看看你的问题是什么。