我已经创建了一个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新手。提前致谢
答案 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使用“选择查询”。