PHP Query仅适用于某些电子邮件地址

时间:2015-04-28 11:15:27

标签: php android

所以,我正在创建一个Android应用程序,它需要能够与数据库进行通信,即在线。据我所知,我可以毫无问题地连接到数据库并且查询有效。但是,在测试时,通过浏览器,它只返回一些电子邮件地址?任何人都可以解释为什么这不起作用吗?

    <?php
    function resultToArray($result) {
        $rows = array();
        while($row = $result->fetch_assoc()) {
            $rows[] = $row;
        }
        return $rows;
    }
    $mysqli = new mysqli("serverhost", "username", "password", "db_to_use");
    $email = $_GET['email'];
    $query = ("SELECT * FROM Cards WHERE Email_FK='{$email}'");
    $result = $mysqli->query($query);
    $rows = resultToArray($result);

    echo json_encode($rows);
    $result->free();
    ?>

当我使用一个电子邮件地址运行时; mooh_****@hotmail.com,它工作正常,并回应一个json数组; enter image description here

但是,如果我用另一个电子邮件地址运行它; kasper.****@gmail.com,它什么也没有返回。 (我不会发布那张图片,因为我只是一个空白的屏幕!)

它也发生在其他电子邮件地址上。有些工作,有些不做。

只是为了表明,数据库中实际存在与kasper.****@gmail.com地址关联的内容;

enter image description here

有人可以告诉我,我做错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

评论摘要: 您的json_encode输入中似乎有错误,一些建议:

(为了更好的错误处理)你应该在输出任何内容之前检查json_encode的返回值,例如:进行以下检查:

ACID

使用您的JSON错误5(这意味着类似false utf8编码的字符串),尝试找出问题所在:

  1. MySQL编码问题:设置字符集,例如<?php $json = json_encode( $rows ); if ( $json ) { echo $json; } else { echo ' { "success": false, "reason": "json_error: ' . json_last_error() . '" } '; }
  2. 浏览mysql返回的数据并检查,如果utf8支持所有使用过的字符