mysql_num_rows()函数期望参数1是一个资源,在安卓上发生错误。

8 浏览
0 Comments

mysql_num_rows()函数期望参数1是一个资源,在安卓上发生错误。

我正在尝试从安卓应用程序中发送在edittext中输入的用户ID和一次性密码(otp),但从服务器端我得到以下响应。

mysql_num_rows()期望参数1是资源,但给定的是布尔值

/nfs/c07/h02/mnt/111018/domains/surun.co/html/demo/rest/api.php

168

PHP代码中的第168行

if(mysql_num_rows($results) > 0)

更详细的PHP代码如下:

 public function selectQuery($table_name,$fields,$where="",$show = 0)
    {
       $i =0;
       if($where == "")
       $sql = "SELECT  ".$fields." FROM ".$table_name;
       else
       $sql = "SELECT  ".$fields." FROM ".$table_name." WHERE ".$where;
      //MySqli Select Query
      if($show == 1)
      return $sql;
      $results = mysql_query( $sql,$this->db );
      if(mysql_num_rows($results) > 0)
      {
        while($row = mysql_fetch_assoc($results))
        {
          $result[$i++]= $row;
        }
      }
      return $result;
    }

0
0 Comments

在Android中出现(mysql_num_rows() expects parameter 1 to be resource error at android)错误的原因是$this->db的值没有正确连接到数据库,或者WHERE子句中存在语法错误。解决方法是在代码中添加错误检查,并将mysql连接改为mysqli连接。

在解决这个问题之前,可以参考以下链接中的内容:https://stackoverflow.com/questions/1390607

在代码中进行以下更改:

$results = mysqli_query($this->db, $sql) or die (mysqli_error($connection));

(或者对于MySQL,可以使用以下代码:)

$results = mysqli_query($sql,$this->db) or die (mysql_error());

这样做的目的是在执行查询之前,先检查是否有错误发生。如果有错误发生,会通过die函数输出错误信息并终止程序的执行。

这个错误的原因有两种可能性:一是$this->db的值没有正确连接到数据库,二是WHERE子句中存在语法错误。可以通过添加错误检查来确定具体的问题所在,并进行相应的修复。

通过以上的改动和错误检查,可以解决(mysql_num_rows() expects parameter 1 to be resource error at android)这个问题。

0