【发布时间】:2017-10-09 11:17:22
【问题描述】:
好的,你好。所以我试图创建一个使用 MySQL 数据库生成 RecylerView 的 Android 应用程序。要获取数据,我在同一服务器上使用 PhP 文件存储。但我想稍微扩展一下应用程序。现在如果我调用这条线:$query = 'SELECT * FROM items WHERE catid = "$catid"'; 结果是空的。
奇怪的是:如果我在 PhPMyAdmin 中输入查询,它会显示正确的结果。
这是完整的 PHP 文件(已删除数据库登录)(Annnd 强制性免责声明:我的英语不流利,请原谅一些拼写错误 c:)
编辑:我认为有些人误解了:问题不在 Android 中。我敢肯定。而“生成”.. 只是忽略我不知道我可以使用什么其他词.. 所以问题只在 PHP 文件中
<?php
$connection = mysqli_connect("","","","");
$type = $_GET["t"];
if($type == "categorys"){
$query = "SELECT * FROM categorys";
}else{
$catid = $_GET["id"];
$query = 'SELECT * FROM items WHERE catid = "$catid"';
}
$result = mysqli_query($connection,$query);
while ($row = mysqli_fetch_assoc($result)) {
$array[] = $row;
}
header('Content-Type:Application/json');
echo json_encode($array);
?>
【问题讨论】:
-
你确定
$catid有值吗? -
...使用 MySQL 数据库生成 RecylerView... MySQL 无法“生成”
RecylerView,因为它对 Andorid 平台一无所知 -
@Selvin 我猜这是 REST API 的服务器端,而不是从 PHP 脚本动态生成
RecyclerView.Adapter(是的,这是不可能的) -
所以他应该写“在Android平台上使用PHP作为后端从MySQL获取数据并使用RecylerView显示”
-
首先看bobby-tables.com,了解SQL注入以及如何防范。现在,您的代码非常开放,并且存在 SQL 注入的高风险。对带有用户输入的查询使用准备好的语句。