Android - 检查MySQL中的SELECT语句返回值

时间:2015-03-28 23:28:11

标签: php android mysql

我会在输入代码前解释我想要做什么, 我有Android项目,连接到MySQL数据库,我的应用程序中有密码恢复活动,在此活动中用户将键入他的电子邮件以获取他的登录信息,因此当用户点击发送时,应用程序将检查是否电子邮件是否存在于数据库中,如果是,则发送电子邮件,否则将通知用户。

现在,在PHP方面,每件事都有效,我编写了查询并返回正确的值。

public function getUName($UEmail) {
    if ($UEmail != NULL) {
        $data = array();    
        $sql = "Select UName FROM `user` WHERE `Email`= '" . $UEmail . "'"; 
        $result = $this->db->query($sql);
                    while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $data[] = $row;
    }

    return $this->_jsonEncode( $data );

    }
}

我知道在PHP中如果我想检查SELECT语句是否返回值,我会写一些类似的东西:

if (mysql_num_rows($result) > 0) 

但是在Android方面呢?我有这个功能:

private boolean getUserInfo(String uEmail)
{
    String getInfo_URL = SERVER_URL + "GetInfo.php?email=" + uEmail;
    new CommunicatetoServer().execute(getEmail_URL);
    return true;
}

如果SELECT语句返回值,我希望此函数返回true,否则返回false。

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

new CommunicatetoServer().execute(getEmail_URL);

您必须以这种方式实现CommunicatetoServer,在执行http请求后,它将从服务器接收数据。

您确实需要在另一个线程中实现HTTP请求,例如使用AsyncTask(或使用外部库用于http请求)并使用将在CommunicatetoServer接收从服务器返回的数据时触发的回调。

在您的情况下,PHP脚本返回JSON数据。您只需将收到的JSON数据解析为java对象表示。

您可以使用例如GSON库在Android中进行JSON解析

一些注意事项:

  • 您的PHP代码非常糟糕。这是不安全的 - 你有SQL注入 漏洞
  • DB中的字段“电子邮件”是唯一的吗? (必须) - 如果是,请使用fetch_row()代替fetch_array()