android的api不起作用

时间:2018-08-10 17:26:16

标签: php android

我为我的android应用创建了注册服务 Android端工作正常(我猜)并返回“失败” 这是我的PHP代码:

$json = file_get_contents('php://input');
$User = json_decode($json);

function ConnectDatabase()
{
    $connect = mysqli_connect("localhost", "root", "", "my_db");
    mysqli_set_charset($connect, "utf8");
    return ConnectDatabase();
}

$username = $User->user;
$password = $User->pass;

function AddUser($user, $pass)
{
    $connect = ConnectDatabase();
    if (!(trim($user) == "" || trim($pass) == ""))
    {
        $check = mysqli_query($connect, "select count(*) from usertable where Username='$user'");
        $row = mysqli_fetch_array($check);
        if ($row[0] > 0)
        {
            return "usernameTaken";

        }
        else
        {
            $SQL = "INSERT INTO usertable(Username,Password) VALUES ('$user','$pass')";
            $query = mysqli_query($connect, $SQL);
            if ($query != "")
            {
                return "ok";
            }
            else
            {
                return "failed";
            }
        }
    }
    else
    {
        return "badUsernameOrPassword";
    }
}

$status = AddUser($username, $password);
echo json_encode(["status"=>$status]);

检查了uri及其正确的...你们看到任何错误吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

摘自php.netmysqli_query的PHP文档:

  

失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。

因此您的代码必须是:

if ($query != FALSE){
    return "ok";
}else{
    return "failed";
}

答案 1 :(得分:1)

从您的php代码中,它永远不会返回失败,因为$query将是mysqli_result对象或false且决不会是""。没有看到您的android代码,将很难分辨。但是,此PHP代码将始终返回usernameTakenbadUsernameOrPasswordok(绝不会显示失败。)如果您看到“失败”,则问题肯定出在您的android代码上。您介意发布您的Android代码,以便我通过更新答案来提供帮助吗?您还应该更改:

if ($query != "")
{
   return "ok";
}

if (!$query)
{
    return "ok";
}