为什么它如此难以获得只有1行mysql数据进入android?

时间:2016-11-19 12:32:44

标签: php android mysql json

我只想将来自URL的JSON数据用作我活动中的变量。 它对listview-arrays没有任何问题,但这对我的愿望来说太长了。 我该怎么办?我找到了一些例子,但现在已经弃用了httpclient。我不想因此而降级我的图书馆。

例如,我可以使用json数据中的数据作为工具栏中的标题。我该怎么办?

我的php-json方面;

$uid= $_GET['device_id'];

$result = "SELECT `contact_name`,`username`,`device_id` FROM `users` WHERE `device_id`='{$uid}' AND `device_match`=1 AND `suspended`=0 LIMIT 1";
$result = mysql_query($result);
$num = mysql_num_rows($result);

if ($num>0) {
    $row = mysql_fetch_array($result);
    $response["success"] = 1;
    $response["contact_name"] = $row['contact_name'];
    $response["link"] = "index.php";
} else {
    $response["success"] = 0;
    $response["contact_name"] = "";
    $response["link"] = "login.php";
}

echo json_encode($response);

我喜欢在里面使用这些数据;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.portal_activity);

    // I know thats stupid, just for explanation what I want to do.

    final String username = $response["contact_name"];
    final String link= $response["link"];


    //like below;
    Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
    toolbar.setTitle(username);

    //or like to set into a textview;

    TextView mytext1= (TextView)findViewById(R.id.mytext1);
    mytext1.setText(link);
}

我的技能水平:非常擅长PHP,初学者是Android / Java

1 个答案:

答案 0 :(得分:0)

您必须在标题中声明您的退货类型。

header('Content-type: javascript/json');
// TODO: Add logic here
echo json_encode($response);

另请注意,您的SQL可能容易受到SQL注入攻击,将GET / POST数据视为不受信任来源。你不知道它们包含什么,所以永远不要直接将它们附加到你的SQL中。

使用折旧较少的驱动程序的示例:

$con = new PDO('mysql:host=localhost;dbname=some_db', 'some_user', 'some_pass');
// ? is a placeholder
$smpt = $con->Prepare('SELECT * FROM some_table WHERE some_col = ?');
// add the value to the placeholder securely
$smpt->execute(['someValue']);
$result = $smpt->fetch();

另外,请注意您在回复中返回的信息,因为任何人都可以对您的应用进行反向工程并发送恶意ID并获取用户信息。考虑使用handshakes