所以,我正在创建一个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数组;
但是,如果我用另一个电子邮件地址运行它; kasper.****@gmail.com,它什么也没有返回。 (我不会发布那张图片,因为我只是一个空白的屏幕!)
它也发生在其他电子邮件地址上。有些工作,有些不做。
只是为了表明,数据库中实际存在与kasper.****@gmail.com地址关联的内容;
有人可以告诉我,我做错了吗?
提前致谢。
答案 0 :(得分:0)
评论摘要: 您的json_encode输入中似乎有错误,一些建议:
(为了更好的错误处理)你应该在输出任何内容之前检查json_encode的返回值,例如:进行以下检查:
ACID
使用您的JSON错误5(这意味着类似false utf8编码的字符串),尝试找出问题所在:
<?php
$json = json_encode( $rows );
if ( $json ) {
echo $json;
} else {
echo '
{
"success": false,
"reason": "json_error: ' . json_last_error() . '"
}
';
}