所以,我把我的php页面连接到托管服务器(Hostgator)上的我的Android应用程序。现在我的JSON数据的PHP脚本似乎没有正确返回。这正在我的wamp服务器上正常工作。问题下面的例子......
["data","pre database"][{"email":"thomas@wiregrass.edu","password":"test","fname":"Thomas","lname":"Cummings","phone":"5052030822","temppass":"15151","alert":"B"}]
任何关于我做错了什么或者发生了什么的想法都会受到赞赏。
PHP脚本(可能已过时,此项目已旧):
<?php
$user = "ab73953_test";
$pass = "H3@ther78";
$db = "ab73953_testdb";
$out = array('data', 'pre database');
echo json_encode($out);
$db = mysqli_connect('localhost', $user, $pass, $db) or die("did not work");
$email=$_POST['username'];
$email = "thomas@wiregrass.edu"; // testing
$qry = 'SELECT * FROM users WHERE email = "'. $email .'"' ;
$result = mysqli_query($db, $qry) or die(" did not query");
$count = mysqli_num_rows($result);
$output = array();
if($count > 0){
while($row = mysqli_fetch_assoc($result))
{
$output[]=$row;
}
echo json_encode($output);
}
else
echo json_encode("Could not find user");
mysqli_close($db);
?>
答案 0 :(得分:1)
这不是有效的JSON。 JSON基本上是javascript:如果你生成的json是一个javascript语法错误,那么它就是json无效。
你有两个独立的echo json_encode(...)
块,所以你要生成两个完全独立/不同的json字符串。您的输出只能是一个单个json字符串。
e.g。 [...][...]
是两个独立的阵列,它们粘在了一起。这是一个javascript语法错误,因此它也是无效的json。如果你有像
$arr1 = array(...);
$arr2 = array(...);
echo json_encode(array($arr1, $arr2));
你最终会
[[...],[...]]
并且没问题
但你有
echo json_encode($arr1);
echo json_encode($arr2);
并以
结束[...][...]
这是一个彻头彻尾的语法错误。
请注意,您很容易受到sql injection attacks的攻击。</ p>