JSON [" data"," pre database"]

时间:2016-07-14 18:33:08

标签: php android arrays json

所以,我把我的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);
?>

1 个答案:

答案 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>