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

标签 php android mysql

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

现在,在 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。

提前谢谢您。

最佳答案

new CommunicatetoServer().execute(getEmail_URL);

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

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

在您的例子中,PHP 脚本返回 JSON 数据。您只需将接收到的 JSON 数据解析为 java 对象表示形式即可。

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

一些注意事项:

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

关于php - Android - 检查 MySQL 中的 SELECT 语句是否返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29323821/

相关文章:

php - 无法从数据库加载图像

php - 需要用PHP过滤掉一行

php - fatal error :在 joomla 3 中调用未定义的方法 JController::getInstance()

PHP - 简单的下载脚本

android - 如何创建一个 "for"循环以不仅添加一个值而且添加一个标识符。安卓、Eclipse 集成开发环境

android - 序列化包含 ArrayLists 的 ArrayList?

java - 将 java 集合保存在数据库中

php - 我可以安全地忽略错误代码为 00000 的 MySQL 错误 HY000

php - 如何修复MySql异常访问被拒绝用户 'root' @'localhost'(使用密码: YES)

java - AndroidDebugKey Keystore被篡改,或者密码不正确