1

I have two classes DBConn and DBQueries. DBQueries inherits after DBConn. When I'm going to display all users in users database, I see message:

mysql_fetch_array() expects parameter 1 to be resource, string given.
Thanks for any suggestions.

class DBConn /*extends Config*/ {
  public function dbConnection(){
    $db_host = 'localhost';
    $db_login = 'root';
    $db_password = '';
    $db_name = "database";
    $conn = mysql_connect($db_host, $db_login, $db_password);
    $db = mysql_select_db($db_name);
  }  
}
class DBQueries extends DBConn {
  function displayUsers(){
    $this->dbConnection();
    $query = "SELECT * FROM users";
    $result = mysql_query($query);
    while ($row = mysql_fetch_array($query)) {
      echo $row['password'];
    }
  }
}
0

3 Answers 3

16

You are passing in $query which is your sql string, when you need to pass in $result which is your db result object.

class DBQueries extends DBConn {
    function displayUsers(){
        $this->dbConnection();
        $query = "SELECT * FROM users";
        $result = mysql_query($query);
        while ($row = mysql_fetch_array($result)) {
            echo $row['password'];
        }
    }
}
Sign up to request clarification or add additional context in comments.

Comments

4

You need to pass in the result handle $result returned by mysql_query().

Comments

0

You need to pass $result into the mysql_fetch_array function call as the first parameter, not $query.

class DBQueries extends DBConn {
  function displayUsers(){
    $this->dbConnection();
    $query = "SELECT * FROM users";
    $result = mysql_query($query);
    while ($row = mysql_fetch_array($result)) {
      echo $row['password'];
    }
  }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.