我为我的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及其正确的...你们看到任何错误吗? 谢谢。
答案 0 :(得分:1)
摘自php.net中mysqli_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代码将始终返回usernameTaken
,badUsernameOrPassword
或ok
(绝不会显示失败。)如果您看到“失败”,则问题肯定出在您的android代码上。您介意发布您的Android代码,以便我通过更新答案来提供帮助吗?您还应该更改:
if ($query != "")
{
return "ok";
}
到
if (!$query)
{
return "ok";
}