mysql_fetch_array()期望参数1是资源,给定字符串

时间:2011-02-04 18:43:40

标签: php mysql oop

我有两个班级DBConnDBQueriesDBQueriesDBConn之后继承。当我要显示用户数据库中的所有用户时,我看到消息:

mysql_fetch_array()期望参数1是资源,给定字符串。
感谢您的任何建议。

< / p>

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'];
    }
  }
}

3 个答案:

答案 0 :(得分:16)

当您需要传入$query这是您的数据库结果对象时,您正在传递$result sql string

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'];
        }
    }
}

答案 1 :(得分:4)

您需要传递$result返回的结果句柄mysql_query()

答案 2 :(得分:0)

您需要将$ result作为第一个参数传递给mysql_fetch_array函数调用,而不是$ 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'];
    }
  }
}