mysql_num_rows()函数期望参数1是一个资源,在安卓上发生错误。
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; }
在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)这个问题。