首页 文章

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

提问于
浏览
1

这个问题在这里已有答案:

我有两个班 DBConnDBQueries . DBQueriesDBConn 之后继承 . 当我要在用户数据库中显示所有用户时,我看到消息:

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

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 回答

  • 4

    当你需要传入 $result 这是你的db结果对象时,你正在传递 $query 这是你的 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'];
            }
        }
    }
    
  • 0

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

  • 15

    您需要将$ 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'];
        }
      }
    }
    

相关问题