0

我创建了一个 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;
}

但是我得到的响应有一个错误我尝试使用 surpessing the warnings

@mysql_fetch_assoc($query)

它在浏览器中给出了正确的响应,但 android 得到 null 作为响应

错误:

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

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

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

4

3 回答 3

1

插入查询不返回结果集

只有SELECT查询返回结果集

于 2013-04-04T11:23:53.793 回答
0

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

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,mysql_query() 成功时返回资源,错误时返回 FALSE。

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

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

使用 mysql_num_rows() 找出 SELECT 语句返回了多少行,或使用 mysql_affected_rows() 找出有多少行受到 DELETE、INSERT、REPLACE 或 UPDATE 语句的影响。

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

于 2013-04-04T11:24:25.167 回答
0

你不能得到结果

插入查询
但您可以通过以下方式获取当前插入用户的 ID
mysql_insert_id()
然后您可以针对该 ID 使用“选择查询”。

于 2013-04-04T11:45:21.540 回答