Search code examples
phpmysqlwarnings

how to prevent this error : Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in ... on line 11


I'm very confused with this error, it shows when I try to return a result from the DB that doesn't exist ... I tried mysql_num_rows() but it returns the same error but instead of mysql_fetch_assoc expects ... it says mysql_num_rows() expects ...

I set error_reporting(0) to avoid showing this error, but I'm not satisfied with this solution ...


Solution

  • Here's the proper way to do things:

    <?PHP
    $sql = 'some query...';
    $result = mysql_query($q);
    
    if (! $result){
       throw new My_Db_Exception('Database error: ' . mysql_error());
    }
    
    while($row = mysql_fetch_assoc($result)){
      //handle rows.
    }
    

    Note the check on (! $result) -- if your $result is a boolean, it's certainly false, and it means there was a database error, meaning your query was probably bad.