我会在输入代码前解释我想要做什么, 我有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。
提前谢谢你。
答案 0 :(得分:0)
new CommunicatetoServer().execute(getEmail_URL);
您必须以这种方式实现CommunicatetoServer,在执行http请求后,它将从服务器接收数据。
您确实需要在另一个线程中实现HTTP请求,例如使用AsyncTask(或使用外部库用于http请求)并使用将在CommunicatetoServer接收从服务器返回的数据时触发的回调。
在您的情况下,PHP脚本返回JSON数据。您只需将收到的JSON数据解析为java对象表示。
您可以使用例如GSON库在Android中进行JSON解析
一些注意事项: