mysql_fetch_assoc():提供的参数不是有效的MySQL

时间:2013-04-04 11:20:35

标签: php android mysql

我已经创建了一个Android应用程序,通过在php中使用此函数我创建了一个 数据库mysql中的新用户。

function signUp($sName, $sMobile, $sAddress, $sEmail, $sPwd)
    {
    $sql = "insert into customers (name,mobile,address,email,pwd) values ('$sName','$sMobile','$sAddress','$sEmail','$sPwd')";
    $run = $this->query($sql);
    if ($this->result <= 0) {
        return false;
    } else {
        return $this->json('DATA');
    }
}

使用以下功能,我在数据库中查询并以json格式返回响应

function query($sql){
$query = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($query)){
$this->result[] = $row;
}
return $this;
}

但是我得到的回复有一个错误,我尝试使用

来进行警告
@mysql_fetch_assoc($query)

它在浏览器中给出了正确的响应,但是android作为响应获取了

错误:

  

警告:mysql_fetch_assoc():提供的参数不是有效的MySQL   

中的结果资源      

警告:无法修改标头信息 - 已发送的标头   (输出开始于

需要帮助PHP新手。提前致谢

3 个答案:

答案 0 :(得分:1)

INSERT QUERY不会返回RESULT SET

SELECT 查询返回结果集

答案 1 :(得分:0)

嗯,问题是你的查询是INSERT查询,根据PHP手册,在成功查询中它返回true,而不是mysql对象。所以函数“mysql_fetch_assoc($ query)”无法运行,因为它请求mysql对象作为参数不仅为TRUE。
另外,我建议开始使用MySQLi或PDO扩展,而不是mysql_ *函数。

  

对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句返回   resultset,mysql_query()在成功时返回资源,或者返回FALSE   错误。

     

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,   mysql_query()成功时返回TRUE,错误时返回FALSE。

     

返回的结果资源应该传递给mysql_fetch_array(),   以及用于处理结果表的其他函数,以访问   返回数据。

     

使用mysql_num_rows()来查找为a返回的行数   SELECT语句或mysql_affected_rows()来查找多少行   受到DELETE,INSERT,REPLACE或UPDATE语句的影响。

     

mysql_query()也会失败,如果用户没有,则返回FALSE   有权访问查询引用的表。

答案 2 :(得分:0)

您无法通过

Insert Query
获得结果,但您可以通过
mysql_insert_id()
获取当前插入的用户的ID,然后您可以针对该ID使用“选择查询”。